为了账号安全,请及时绑定邮箱和手机立即绑定

一种阻止 WebSocket 错误显示在浏览器控制台中的方法

一种阻止 WebSocket 错误显示在浏览器控制台中的方法

智慧大石 2021-11-18 16:37:21
所以问题是当我尝试向远程主机启动新的 WebSocket 时,有时浏览器的控制台会打印一条红色错误消息并抱怨连接被拒绝,这是消息:Error in connection establishment: net::ERR_CONNECTION_REFUSED有错误是好的,因为远程主机有时可能没有响应,但我无法处理此错误消息的事实非常烦人。在我的 JavaScript 代码中初始化一个之前,有没有办法处理这个错误消息或检查远程主机是否接受 WebSocket 连接?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

想到了几种可能性:


添加WebSocket.onerror错误处理程序


myWebSocket.onerror = myEventHandler;

将您的“连接”包裹在try/catch 块中


try {

   const connection = new WebSocket(myUrl);

   ...

}

catch(error) {

   console.error(error);

}

构建您的代码,使您的 I/O 是事件驱动的:


https://developer.mozilla.org/en-US/docs/Web/API/WebSocket#Examples


    // Create WebSocket connection.

    const socket = new WebSocket('ws://localhost:8080');


    // Connection opened

    socket.addEventListener('open', function (event) {

        socket.send('Hello Server!');

    });


    // Listen for messages

    socket.addEventListener('message', function (event) {

       console.log('Message from server ', event.data);

    });


    // Handle errors

    socket.addEventListener('error', function (event) {

       console.log('WebSocket error observed:', event);

    });

附录:

  • 上述方法可以让您完全处理 websockets 异常。

  • 不管异常是否被处理,Chrome 调试器都会告诉你是否发生了异常。这是一件好事。它被称为“第一次机会例外”:

    https://docs.microsoft.com/en-us/security-risk-detection/concepts/first-chance-exception

    .. 它被称为“第一次机会”异常——在应用程序处理异常(或不处理)之前,调试器有第一次机会检查异常。

    在 Microsoft 的 Visual Studio 调试器中,有一个小复选框可用于“堵住”第一次机会异常。我不知道 Chrome 调试器中有任何类似的“复选框”。

  • 可能的建议:

    • Chrome 调试器有一个“过滤器”。示例过滤器正则表达式:^((?!ERR_CONNECTION_REFUSED).)*$

    • 此链接建议您可以使用过滤器来“隐藏网络消息”(我自己还没有尝试过)。另请参阅此链接


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 825 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信