【发布时间】:2015-03-07 14:00:31
【问题描述】:
我目前遇到了一个问题,你们也许可以帮我解决..
我正在使用 websockets 连接到自定义服务器。现在,如果第一个服务器 IP 不可用,我想集成第二个服务器 IP。
如何检测到由于无法访问服务器而无法建立连接?例如,当我在脚本中输入错误的 ws://url 时,Chrome 会给我以下错误:
到“wss://1234/”的 WebSocket 连接失败:连接建立错误:net::ERR_NAME_NOT_RESOLVED
在 Firefox 中,情况完全不同。你们有什么方法可以用 Javascript 捕获这个错误吗?
基本上当无法访问 ws:// url 时,我想用不同的 Server-IP 更改一个变量,然后用这个再次尝试...
感谢您的帮助!
【问题讨论】:
-
您可以随时退回到 ajax 长轮询方法。
-
嘿@3boll,谢谢!你能解释得更详细一点吗?我从未使用过 ajax 长轮询.. 谷歌研究对我也没有太大帮助..
-
Socket.IO (socket.io) 是一个项目,如果浏览器不支持 websockets,它会自动回退到长轮询,所以如果你需要的话,你可能想研究一下。跨度>
-
哦,这不是关于用户没有 websockets 的问题。我现在使用 websockets 连接到某个 url,ws://127.0.0.1,如果这个主机不会由于某种原因可用,出现相同的错误,就好像您将我们的 ws:// 那不存在一样。我需要捕获这种特定类型的错误,然后切换到尝试另一个 ws:// IP...基本上:如果 IP1 关闭,请尝试 IP2...它会触发“onClose”事件,目前为止是正确的..但如果有一种“服务器不可用”的方法会更好。我将 onClose 事件用于在重新连接时会发生冲突的其他内容。
-
是的,我意识到,并且正在输入一个(通用)答案,但上面的评论最终并没有太大帮助,所以我想我也会在这里加入。
标签: javascript jquery websocket