首页 > 解决方案 > 如何在 JavaScript Web Socket 上缓存错误 net::ERR_CONNECTION_REFUSED

问题描述

我正在开发 JavaScript 客户端 websocket。一旦我同时运行服务器程序和下面的客户端 javascript,代码就可以正常工作。

   try {
        webSocket = new WebSocket(webSocketURL);
        webSocket.onopen = function(openEvent) {
            console.log("WebSocket OPEN: " + JSON.stringify(openEvent, null, 4));
        };
        webSocket.onclose = function (closeEvent) {
            console.log("WebSocket CLOSE: " + JSON.stringify(closeEvent, null, 4));
        };
        webSocket.onerror = function (errorEvent) {
            console.log("WebSocket ERROR: " + JSON.stringify(errorEvent, null, 4));
        };
        webSocket.onmessage = function (messageEvent) {
            var wsMsg = messageEvent.data;
            console.log("WebSocket MESSAGE: " + wsMsg);
            if (wsMsg.indexOf("error") > 0) {
                console.log (wsMsg.error); 
            } else {
                console.log (wsMsg); 
            }
        };
    } catch (exception) {
        console.error(exception);
    }

但是,我收到了一个错误net::ERR_CONNECTION_REFUSED,它被 webbrowser 缓存。但我的代码无法捕捉到这个错误。

关于查看此图片中的错误消息https://ibb.co/bHSBw0G。任何建议或指导将不胜感激,谢谢。

标签: javascriptwebsocket

解决方案


我认为 ErrorEvent 具有不可枚举的属性(只有可枚举的是 isTrusted getter - 不是超级有用)。尝试通过执行以下操作显式访问属性:

webSocket.onerror = function (errorEvent) {
  console.log("WebSocket ERROR: " + errorEvent.message)
}

推荐阅读