我已经构建了一个简单的Web应用程序,它使用socket.io通过node.js服务器进行一些通信。是否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'});
插座。发出('nodeinfo')通知客户订阅事件。
所以客户有
socket.on('nodeinfo', function(data) { ... }
的事情是它永远不会说“你”连接两次,没有执行console.log()函数“的adduser”的再次调用上的节点侧。似乎发生的唯一情况是node.js再次发出nodeinfo(或者客户端认为)导致客户端重新订阅。
任何人都可以向我解释如何重新连接在socket.io工作,以及如何发生?
是的。与结果相同,我只是注意到我们的应用程序会发生什么情况。谢谢 – Xin 2017-04-06 03:26:12