如何在JavaScript中获取WebSocket错误代码

jum4pzuy  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(224)

我的程序尝试创建WebSocket并生成错误。
代码为:

let errMsg = "";
            try {
                socket = new WebSocket(server_ip.value, "chat");    // (*)
            }
            catch(err) {
// js doesn't come to this branch
                Websocketerror = true;
                errMsg = "Websocket creation error. Code = " + err.code.toString() +
                            "  Description = _" + err.message + "_";
            }

            if (websocketError) {
                appendMessageText(errMsg, "msg_err");
            }
            else {
                socket.onopen = ws_OnConnectionCreated;
                socket.onclose = ws_onConnectionClose;
                socket.onerror = ws_OnConnectionError;
            }

function ws_onConnectionClose(event) {

        let status = event.wasClean ? "ok." : "(aborted).";

        appendMessageText("Websocket is closed" + status, "msg_log");
        console.log("------> ws_onConnectionClose(event): event =", event);

};

我在控制台中看到一条错误消息:“WebSocket连接到. ip..失败:WebSocket握手期间出错:意外响应代码:499”,表示源行(*)
它发生在防病毒处于活动状态时-我猜它会阻止websocket连接并强制返回代码= 499。
我的处理程序function ws_onConnectionClose(event)被调用了,但是我没有看到-从哪个变量我可以得到错误消息(我已经在event中通过console.log(event)搜索了它)?
问:如何获取错误内容(错误消息,如上所述)?

qojgxg4l

qojgxg4l1#

简短回答:你不能
出于安全原因,详细的调试信息对JS不可用。你不会想让我在我的公共网站上放一些JavaScript,探测你的本地网络,并发回有关连接尝试的详细信息。
也就是说,您仍然可以通过event.wasCleanevent.code来显示一般错误。RFC 6455中定义了错误代码,但根据我的经验,几乎总是返回代码1006。同样根据我的经验,event.reason属性几乎总是一个空字符串。

相关问题