Socket.io 1.0,IE7。无法读取发出的消息

时间:2014-08-10 10:01:15

标签: node.js socket.io internet-explorer-7

尝试从服务器读取发出的消息。 IE7似乎失败了..

服务器代码:

服务器每半秒发出一次“新闻”,并在发出20条新闻后断开连接

var server = require('http').createServer();
var io = require('socket.io')(server,{
            'transports':[
                'polling',
                'websocket',
                'flashsocket',
                'htmlfile'
            ]
         });


io.on('connection', function (socket) {
    console.log('connect: '+socket.id);
    var num = 0;

    var cInterval = setInterval(function(){
        console.log(num+' emit news');
        socket.emit('news', 'this is news '+num);
        num++;
        if(num==20) socket.disconnect();
    },500);

    socket.on('disconnect', function(why){ 
        console.log('disconnect: '+socket.id);
        clearInterval(cInterval);
    });

});

server.listen(port,ip);
console.log('io ready');

客户代码:

客户端将记录连接尝试,新闻内容和断开事件。

var socket = io('ws://localhost:8080')
.on('connect',function(){
    logging('connecting');
})
.on('disconnect',function(){
    logging('disconnected');
})
.on('news', function (data) {
    logging(data);
});

我没有使用console.log作为日志记录机制,因此IE7应该没问题。

导致IE8,IE9,Chrome:

connecting
this is news 0
this is news 1
...
this is news 19
disconnected

导致IE7:

connecting
disconnected

这是否已知?

有没有解决方法?

任何帮助将不胜感激.. 感谢..

1 个答案:

答案 0 :(得分:2)

使用JSON2,因为IE7没有本机JSON对象。 http://cdnjs.cloudflare.com/ajax/libs/json2/20130526/json2.min.js