NodeJs, socket.io, IE

NodeJs, socket.io, IE

本文关键字:IE io socket NodeJs      更新时间:2023-09-26

我有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和所有作品!