gpt4 book ai didi

javascript - 如何捕获 WebSocket 连接中断?

转载 作者:可可西里 更新时间:2023-11-01 02:25:20 24 4
gpt4 key购买 nike

在 Firefox 中(至少),如果您按下 ESC,那么它将关闭所有打开的 WebSockets 连接。我需要捕获该断开连接,并在它再次可用时尝试重新连接。

这是我尝试实现的代码示例,但我无法找出任何可以捕获错误并让我优雅地处理它的方法。

看看代码:http://jsfiddle.net/w5aAK/

var url = "ws://echo.websocket.org";
try {
socket = window['MozWebSocket'] ? new MozWebSocket(url) : new WebSocket(url);
socket.onopen = function(){
console.log('Socket is now open.');
};
socket.onerror = function (error) {
console.error('There was an un-identified Web Socket error');
};
socket.onmessage = function (message) {
console.info("Message: %o", message.data);
};
} catch (e) {
console.error('Sorry, the web socket at "%s" is un-available', url);
}

setTimeout(function(){
socket.send("Hello World");
}, 1000);

打开控制台并观察输出。

我在这里做错了什么,还是因为连接在 JS 脚本的范围之外运行而无法实现?

任何输入都会有所帮助。

谢谢!

最佳答案

您可以将处理程序附加到 socket.onclose 事件。当您按下 ESC 并且连接中断时,它将被调用。

参见:http://jsfiddle.net/w5aAK/1/

目前您无法解决的一个问题是将中断错误输出到控制台。恐怕目前无法捕捉到这一点。

关于javascript - 如何捕获 WebSocket 连接中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616960/

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