use*_*342 5 javascript node.js socket.io
我正在开发一个node.js 应用程序,使用socket.io 在服务器和客户端之间进行通信。如果服务器遇到任何错误,我会向客户端发送一条错误消息,并关闭服务器和客户端的连接。但是,当客户端尝试重新连接时,它无法再连接到服务器。我的代码
服务器.js
io.sockets.on('connection', function(socket) {
/*Some code*/
stream.on('error',function(errormsg){
socket.emit('error',{txt: "Error!"});
socket.disconnect();
});
});
Run Code Online (Sandbox Code Playgroud)
客户端.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);
}
Run Code Online (Sandbox Code Playgroud)
socket.connected 的状态为 false。我在服务器端也没有收到它。
我认为您的调用不是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!');
});
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如 @jfriend00 指出的那样,您可能不需要socket.disconnect()首先执行此操作,因为 socket.io 应该自动处理重新连接。