Suppress "WebSocket connection to 'xyz' failed&
Suppress "WebSocket connection to 'xyz' failed"
我写了一个使用web sockets的web应用程序。这个想法是,我的应用程序尝试自动连接到最近连接到主机时,它启动。如果它不能与它们中的任何一个建立连接,那么它将用户引导到连接部分,并要求他们手动建立连接。
所有这些都有效。总之,我按顺序尝试每个已知的主机,如果200毫秒后它还没有连接(' readyState != 1),它就尝试下一个主机。所有这些主机都应该在局域网上,所以200ms的工作非常可靠。如果列表中的最后一个也失败了,那么web会打开一个模式,引导用户手动输入主机。
问题是,通过尝试自动连接,我必须为我尝试的主机创建websockets,它向控制台输出如下错误消息:
WebSocket连接到'ws://lightmate:8080/'失败:错误连接建立:net::ERR_NAME_NOT_RESOLVED
WebSocket连接到'ws://localhost:8080/'失败:错误连接建立:net::ERR_CONNECTION_REFUSED
虽然无论如何都不是致命的缺陷,但它很不美观,并且妨碍了我的调试。
我试图通过使用try/catch块围绕对new WebSocket(address)
的调用来删除它,并且错误仍然通过,我还试图设置onerror
处理程序,希望能够抑制错误消息。没有工作。
connect: function(){
var fulladdr = completeServerAddress(address);
try {
connection = new WebSocket(fulladdr);
connection.suppressErrorsBecauseOfAutoConnection = suppressErrorsBecauseOfAutoConnection; //Store this module-scoped variable in connection, so if the module changes suppression state, this connection won't.
} catch (e){
//Make sure we don't try to send anything down this dead websocket
connection = false;
return false;
}
connection.binaryType = "arraybuffer";
connection.onerror = function(){
if (connection !== false && !connection.suppressErrorsBecauseOfAutoConnection){
Announce.announceMessage("Connection failed with server");
}
connection = false;
};
connection.onmessage = function(m){
rxMessage(ConnectionProtocol.BaseMessage.parseChunk(m.data));
};
connection.onclose = function(){
hooks.swing("disconnected", "", 0);
if (connection !== false && !connection.suppressErrorsBecauseOfAutoConnection){
Announce.announceMessage("Connection lost with server");
}
};
connection.onopen = function(){
sendMessages(ConnectionProtocol.HandshakeMessage.create(name, sources, sinks));
while (idlingmessages.length){
websocketConnection.send(idlingmessages.splice(0,1)[0]);
}
hooks.swing("connected", "", 0);
};
},
Dupl免责声明:这个问题类似于这个StackOverflow的问题,但是那个问题已经过时一年了,大家的共识是"你不能"。
无法捕获该错误消息,该错误消息在创建WebSocket
对象的代码中异步发生。
更多细节在这里:Javascript没有't捕获错误在WebSocket实例化
- mootools getElements failed
- 在javascript中,我正在使用EventListener,并且我得到了TypeError xyz = null
- XYZ dimensional array
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 组合多个/^(xyz)/regex表达式
- OpenLayers3和高分辨率图像(XYZ源)
- jquery Object 没有方法 'xyz'
- 在 Three.js 中将经度和纬度转换为 xyz(以便旋转相机)时出现问题
- KNOCKOUT.js:将 { data: xyz } 传递给 foreach,而不仅仅是 xyz
- 从 XYZ 解码并编码为 UTF8
- 如何使用 JavaScript 配置 DocPad 集合?“警告:自定义集合 XYZ 不是有效的集合实例”
- JavaScript:TypeError:xyz 在调用函数时不是函数
- 主干路由器为 /en/#xyz 而不是 /#en/xyz
- 在 NodeJS 中.js xyz.client.routes 和 xyz.server.routes.js 有什么区别
- Javascript:根据用户输入添加到静态URL;添加#xyz
- Spring模板中的Access Validation Failed字段名称
- 如何使用javascript在图形中表示XYZ轴
- 脸书'xyz正在键入'特色
- 当我点击链接按钮xyz打开一个新窗口时,ASP.Net链接按钮打开页面x.ASP
- Suppress "WebSocket connection to 'xyz' failed&