【发布时间】:2014-03-27 14:14:06
【问题描述】:
当我在 WinXP 下连接到 IE 8 上的节点服务器时,connect 事件被多次触发。当我在 WinXP 下的 Chrome 或 Windows 7 下的 IE 11 上执行相同操作时,connect 只触发一次,正如预期的那样。
客户端代码:
if (that.debug && window.console) console.log('connecting to '+server_addr);
var socket = that.socket = io.connect(server_addr,{
'reconnect' : false,
'connect timeout' : 1000,
'max reconnection attempts': 3
});
socket.on('connect', function(){
if (that.debug && window.console) console.log('Socket.on event: connect');
cb.call(that,socket);
});
IE 8 上的输出:
LOG: connecting to my_server.com
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
LOG: Socket.on event: connect
有人遇到过这个问题吗?知道如何解决/调试这个问题吗?
【问题讨论】:
-
您可能在复制听众。如果它适合您的设计,请尝试在每次发射之前调用
socket.removeAllListeners()。但我不认为问题出在这段代码中。还有吗? -
“连接到”错误仅显示一次,并且代码中没有任何其他地方可以在不写入控制台的情况下连接或添加更多侦听器,所以我真的不认为就是这样。此外,在其他平台/浏览器上,“连接”只会触发一次。不过,我会尝试按照您的建议删除所有侦听器,以确认这不是问题。
标签: node.js internet-explorer-8 socket.io windows-xp