Серверная сторона получила событие подключения io.on («соединение» .. в то время как клиентская сторона не запустила его socket.on («подключение», () => {}) - PullRequest
0 голосов
/ 07 мая 2018

Иногда я обнаруживал, что мое серверное соединение socket.io (2.1) получило событие подключения, потому что я вижу журнал, а на его стороне клиента я не видел его. И из панели сети Chrome я вижу, что клиентская сторона продолжает отправлять запрос на опрос (потому что произошел сбой websocket) и получил 200 в порядке.

Так как же сервер может получить событие подключения, пока клиент его не отправил? Как мне отладить проблему

//server-side
io.on('connection', function (socket) {
   logger.debug('a user connected ' + socket.id);
    ...
//client-side
socket.on('connect', () => { 
  console.log("socket connect")
    ... 
//from network pane
request URL: http://localhost:5000/socket.io/?EIO=3&transport=polling&t=MCunKN5&sid=SmOL7JbUlSqw6MwZAAAL
Request Method: POST

На стороне клиента я использовал webpack-dev-server для делегирования моего экспресс-сервера.

---- обновление ------

Я обнаружил, что webpack-dev-serve использует socketjs , а не socket.io. Не уверен, что это могло быть причиной. Это журнал, который я получил на стороне сервера:

GET /cs/refresh 200 - - 37.947 ms
socket.io:server incoming connection with id tTOIQou49WeZ-l92AAAL
socket.io:client connecting to namespace /
socket.io:namespace adding socket to nsp /
socket.io:socket socket connected - writing packet
socket.io:socket joining room tTOIQou49WeZ-l92AAAL
socket.io:socket packet already sent in initial handshake
socket.io:socket joined room tTOIQou49WeZ-l92AAAL
socket.io-parser decoded 0/5975b17697e60c5d2403a202, as {"type":0,"nsp":"/5975b17697e60c5d2403a202"}
socket.io:client connecting to namespace /5975b17697e60c5d2403a202
socket.io:namespace adding socket to nsp /5975b17697e60c5d2403a202
socket.io:socket socket connected - writing packet
socket.io:socket joining room /5975b17697e60c5d2403a202#tTOIQou49WeZ-l92AAAL
socket.io:client writing packet {"type":0,"nsp":"/5975b17697e60c5d2403a202"}
socket.io-parser encoding packet {"type":0,"nsp":"/5975b17697e60c5d2403a202"}
socket.io-parser encoded {"type":0,"nsp":"/5975b17697e60c5d2403a202"} as 0/5975b17697e60c5d2403a202,
- debug: a user connected /5975b17697e60c5d2403a202#tTOIQou49WeZ-l92AAAL
socket.io:socket joined room /5975b17697e60c5d2403a202#tTOIQou49WeZ-l92AAAL

На стороне клиента

enter image description here

...