gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:49:41 25 4
gpt4 key购买 nike

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

服务器.js

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

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

客户端.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。如果您想验证您的重新连接是否成功,请像这样尝试:

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

关于javascript - 断开连接后 socket.io 没有重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com