Я создал простое веб-приложение, которое выполняет некоторую связь через сервер node.js, используя socket.io.Соединяет ли socket.io соединение повторно?
Когда пользователь подключается, узел связывает обратную информацию, которая сообщает клиенту о подписании определенных событий. Это прекрасно работает.
Но если вы позволите обозревателю установить свободное время, клиент будет подписан на события дважды. Процесс подписки работает следующим образом:
Когда пользователь подключается node.js получает сообщение «AddUser»
Две ключевых вещей, которые hapen в этой функции является так:
socket.on('adduser', function(data)
<snip>
socket.emit('nodeinfo', {node_id: NODE_ID});
socket.emit('update', {msg: 'you are connected'});
гнезда. emit ('nodeinfo') сигнализирует клиенту подписываться на события.
Так клиент имеет
socket.on('nodeinfo', function(data) { ... }
Дело в том, что никогда не говорят «вы связаны» дважды, ни один из console.log() функции в «AddUser» не дозвонились снова на стороне узла. Единственное, что, похоже, произойдет, это node.js снова испускает nodeinfo (или, как думает клиент), заставляя клиента повторно подписаться.
Может ли кто-нибудь объяснить мне, как происходит повторное подключение в socket.io и как это может произойти?
Да. Идентично с результатом, я просто замечаю, что происходит с нашим приложением. благодаря – Xin