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