node.js套接字的问题会继续重新连接

时间:2014-04-12 20:39:41

标签: node.js sockets websocket socket.io

我在socket.io中遇到一些意外行为,其中我遇到了未提示的重新连接

这是我的前端,由index.html

引用
$(function(){
    var socket = io.connect('https://localhost:3005', {'flash policy port':3005} );
});

这是我的后端

exports.listen = function(server){

    io = socketio.listen(server);
    io.set('log level', 2);

    io.set('flash policy port', 3005); 
    io.set('transports', [                     
        'websocket'
      , 'flashsocket'
      , 'htmlfile'
      , 'xhr-polling'
      , 'jsonp-polling'
    ]);

    io.sockets.on('connection', function(socket){
        console.log("This is the socket id");
        console.log(socket.id);
    });
}

如果我在浏览器上什么都不做的话,这是输出

This is the socket id
 gxn4mxnG9xOoVCLAoMPN
   warn  - websocket parser error: reserved fields must be empty
   info  - transport end (undefined)
   info  - handshake authorized 260xpHzgrsHd8UnNoMPO
This is the socket id
260xpHzgrsHd8UnNoMPO
   warn  - websocket parser error: reserved fields must be empty
   info  - transport end (undefined)
   info  - handshake authorized cMCv6BS-iLCQbmv6oMPP

它将保持连接和断开连接并重新连接,直到我关闭服务器

我不确定为什么会出现这种行为,因为我认为如果你停留在同一页面上,socket.io将不会重新连接。

任何建议都将不胜感激

1 个答案:

答案 0 :(得分:0)

通过卸载Node v0.10.9并安装最新版本

来解决

有关卸载节点的信息,请谨慎参考以下链接

http://notepad2.blogspot.com/2012/06/how-to-uninstall-nodejs-on-mac-os-x.html

重新安装节点

请检查brew或macport

还要记得在安装之前更新brew / macport