gpt4 book ai didi

javascript - WebSocket:如何在它死后自动重新连接

转载 作者:行者123 更新时间:2023-12-04 16:13:39 25 4
gpt4 key购买 nike

var ws = new WebSocket('ws://localhost:8080');
ws.onopen = function () {
ws.send(JSON.stringify({
.... some message the I must send when I connect ....
}));

};

ws.onmessage = function (e) {
console.log('Got a message')
console.log(e.data);
};

ws.onclose = function(e) {
console.log('socket closed try again');

}

ws.onerror = function(err) {
console.error(err)
};

当我第一次连接到套接字时,我必须首先向服务器发送一条消息来验证自己并订阅 channel 。

我遇到的问题是有时套接字服务器不可靠并触发 onerroronclose 'ws' 事件目的。

问题:什么是好的设计模式可以让我,每当套接字关闭或遇到错误时,等待 10 秒,然后重新连接到套接字服务器(并将初始消息重新发送到服务器)

最佳答案

这就是我的结果。它适用于我的目的。

function connect() {
var ws = new WebSocket('ws://localhost:8080');
ws.onopen = function() {
// subscribe to some channels
ws.send(JSON.stringify({
//.... some message the I must send when I connect ....
}));
};

ws.onmessage = function(e) {
console.log('Message:', e.data);
};

ws.onclose = function(e) {
console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason);
setTimeout(function() {
connect();
}, 1000);
};

ws.onerror = function(err) {
console.error('Socket encountered error: ', err.message, 'Closing socket');
ws.close();
};
}

connect();

关于javascript - WebSocket:如何在它死后自动重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65595835/

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