socket.io在ie8下无法发出消息,只能收到信息
发布于 11 年前 作者 cony138 8255 次浏览 最后一次编辑是 8 年前

我客户端的代码如下: 建立socket:

var url = location.host;
    if (/Firefox\/\s/.test(navigator.userAgent)){
        socket = io.connect(url,{transports:['xhr-polling']});
    }else if (/MSIE (\d+.\d+);/.test(navigator.userAgent)){
        socket = io.connect(url,{transports:['jsonp-polling']});//'jsonp-polling']});
    }else {
        socket = io.connect(url);
    }

发送消息:

socket.emit("private message",str);

接受消息:

socket.on('connect', function () {
        socket.on('msg', function(message) {
            addMsgToScreen("private_msg",message);
        });
});

但是在IE环境下,无法发出消息,只可以接受消息,而chrome没问题。 抓包发现点击发送后无反应,同时ie下定时做类似轮询的工作,但是整个时间很短。见下图 好吧,图片上传不了 Uncaught SyntaxError: Unexpected token < ajaxupload.js:618 (anonymous function) 先这样吧,大神们来看看

5 回复

以上均是游览器端的代码,下面是服务器端

function sendMsgTo(name,msg){
    var user = OLlist[name];
    if(user){
        user.emit("msg",msg);
    }
}
  io.set('transports', ['websocket','flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);

试试

set过这行代码,貌似这行代码可以解决ie访问时服务器报错宕机的问题

您好,DeNA在招聘资深Node.js的职位,您有兴趣了解一下吗?

你可以在论坛里专门发一篇帖子介绍一下吗,我很有兴趣了解一下

回到顶部