我正在构建一个聊天应用程序用户WebSockets,它工作得很好,并且我现在正尝试实现重新连接功能,因此,如果Node服务器关闭,客户端将进入重新连接模式,在该模式下,客户端将尝试连接到websocket每秒钟左右。我已经使这成为可能,这是客户端:
function connect() {
const url = 'ws://localhost:1720';
const ws = new WebSocket(url);
ws.onopen = function(e) {
$(".pulse").css("background","#51ff85");
$(".pulse").css("animation","pulse 2s infinite");
};
ws.onclose = function(e) {
$(".pulse").css("background","#ff7272");
$(".pulse").css("animation","none");
setTimeout(function() {
connect();
}, 1000);
};
}
此代码似乎有效,但是当已连接的客户端在断开连接并发送消息后尝试再次连接时,该客户端遇到以下错误:WebSocket is already in CLOSING or CLOSED state
我制作了一个简短的视频来演示问题:https://streamable.com/twnuj
如您所见,消息的某些部分似乎到达了服务器(obj.username),但是没有发送或接收消息。
问题可能是客户端正在尝试与失效的服务器实例进行通信吗?
非常感谢您提供有关此问题的任何意见! <3