我的程序尝试创建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)
搜索了它)?
问:如何获取错误内容(错误消息,如上所述)?
1条答案
按热度按时间qojgxg4l1#
简短回答:你不能
出于安全原因,详细的调试信息对JS不可用。你不会想让我在我的公共网站上放一些JavaScript,探测你的本地网络,并发回有关连接尝试的详细信息。
也就是说,您仍然可以通过
event.wasClean
和event.code
来显示一般错误。RFC 6455中定义了错误代码,但根据我的经验,几乎总是返回代码1006。同样根据我的经验,event.reason
属性几乎总是一个空字符串。