Javascript NodeJs、socket.io、IE

Javascript NodeJs、socket.io、IE,javascript,node.js,internet-explorer,socket.io,Javascript,Node.js,Internet Explorer,Socket.io,我有nodeJS应用程序,在那里我必须使用socket.io。在第页的客户端上,我有以下代码: var serverBaseUrl = document.href; var socket = io.connect(serverBaseUrl, {'sync disconnect on unload' : true}) socket.on('connect', function () { alert("socket connect"); sessionId = (socket.io

我有nodeJS应用程序,在那里我必须使用
socket.io
。在第页的客户端上,我有以下代码:

var serverBaseUrl = document.href;
var socket = io.connect(serverBaseUrl, {'sync disconnect on unload' : true})
socket.on('connect', function () {
    alert("socket connect");
    sessionId = (socket.io.engine.id).toString().substr(0, 10);
    console.log("socket.io connected : " + sessionId);
});
NodeJS代码:

var server = http.createServer(app);
var io = require('../service/sockets').startServer(server);
startServer功能:

io.listen(server).on('connection', handler);
但这段代码在IE中不会触发(我测试9和11版本)

在Chrome和其他浏览器中,它可以完美地工作。另外,还有一件有趣的事情:我使用
npm start
启动服务器,然后在IE中打开一个选项卡,没有套接字连接,然后我关闭节点应用程序的进程并再次启动它,现在,在启动之后,IE触发事件连接,我有了套接字会话


知道发生了什么吗?

问题在于socket.connect操作后出现了大量警报。因此,接下来的顺序是: 1.警觉的 2.插座连接 3.警觉的 4.警觉的

当delte 3和4发出警报时,我的代码开始工作。还不知道为什么,我有人知道-请写信给我

更新


问题出现在console.log中。在没有打开开发人员工具的情况下,IE中不存在对象控制台。所以,删除所有console.log和所有工作

套接字连接由客户端发起;您需要共享您的客户端JS以获得问题的帮助。我的问题第一个代码部分-我看到的是clientOh上的JS。你能分享整个事情吗?你应该在某处有一条线让插座连接。示例:
var socket=io('http://localhost');。也包括相关的node.js代码。添加到整个问题中我不确定
document.href
是什么;它返回未定义的Chrome和FF。试着做一点调试。您是否检查过JS控制台是否有任何错误?您确定每个浏览器的“serverBaseUrl”是什么吗?能否包含启动套接字的node.js代码?
alerts()
在错误的位置可能会中断计时并导致超时。您几乎不应该使用
alert()
进行调试。使用
console.log()
,因为它不会导致计时问题。我不能在为IE编码时使用console.log,因为当我在IE中打开开发工具以查看控制台时,一切都正常!!!