socket.io在断开连接后没有重新连接

时间:2015-04-27 19:14:55

标签: javascript node.js socket.io

我正在使用socket.io开发一个node.js应用程序,以便在服务器和客户端之间进行通信。如果服务器面临任何错误,我会向客户端发送错误消息,并关闭服务器和客户端的连接。但是,当客户端尝试重新连接时,它将无法再连接到服务器。我的代码

server.js

[OneDay]  [TwoDays]  [MoreThanTwoDays]
 3         3          2

client.js

io.sockets.on('connection', function(socket) {

   /*Some code*/
   stream.on('error',function(errormsg){
        socket.emit('error',{txt: "Error!"});
        socket.disconnect();
   });
});

socket.connected的状态为false。我也没有在服务器端收到它。

1 个答案:

答案 0 :(得分:2)

我认为您对io.conncet的通话是同步的,您过早地检查socket.connected。如果您想验证重新连接是否成功,请尝试如下:

function submitclick()
{
  var text="hello";
  if(socket.connected ==false) {
    socket= io.connect({'forceNew': true});
    socket.on('connect', function() {
      console.log('Connected!');
    });
  }
}

修改 正如@jfriend00指出的那样,首先可能不需要你socket.disconnect(),因为socket.io应该自动处理重新连接。