断开连接后,socket.io不能重新连接

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

server.js

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

client.js

 var server_name = "http://127.0.0.1:5000/"; var socket = io.connect(server_name); socket.on('error',function(data){ console.log(data.txt); socket.disconnect(); }); function submitclick() { var text="hello"; if(socket.connected ==false) socket= io.connect({'forceNew': true}); console.log(socket.connected); } 

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

我不认为你对io.conncet的调用是同步的,你检查socket.connected太早。 如果您想validation您的重新连接成功,请尝试如下所示:

 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应该自动处理重新连接。