websocket不断断开连接
Posted
技术标签:
【中文标题】websocket不断断开连接【英文标题】:websocket constantly disconnecting 【发布时间】:2012-08-07 01:45:45 【问题描述】:我一直在尝试制作一个在浏览器中运行的 websocket 聊天室。我做了一些谷歌搜索,找到了一个提供示例 websocket 连接的网站(www.websocket.org/echo.html)。但是每当我尝试他们的“连接”按钮时,它会立即显示“已断开连接”,并且我无法发送消息(这只发生在 Chrome 上)。所以我在 Firefox 上试了一下,它说“错误:未定义”然后“断开连接”。两种浏览器都支持 websocket 技术。
所以我去了另一个网站 (http://www.tutorialspoint.com/html5/html5_websocket.htm) 并复制了示例代码,将其保存为“.html”并在 chrome 中运行。它无法连接到 websocket。相反,它说“断开连接”。
问题:为什么我无法连接到 websocket/为什么它一直断开连接?我的 Chrome 版本是 21.0.1180.60。
为了进一步参考,这是我到目前为止的代码(注意:这只是应该连接并说它已经连接,而不是实际聊天):
<!doctype html>
<head>
<title>Testing</title>
</head>
<body>
<script type="text/javascript">
function confirm()
if ("WebSocket" in window)
alert("WebSocket is supported by your Browser!");
else
alert("Your Browser does not support WebSocket Technology. Please update your Browser.");
function sendmessage()
try
var ws = new WebSocket("ws://(ip of other user/")
catch(err)
alert("Error with creating the WebSocket")
</script>
<a href="javascript:confirm()">Run Ip Connector</a>
</body>
</html>
感谢您的帮助。
【问题讨论】:
【参考方案1】:我刚刚在http://websocket.org/echo 上测试了 Echo 演示,它使用 Chrome 21 运行良好。您的其他示例似乎也运行良好。您可以查看here。
由于您使用的是 Chrome 21,因此您可以use the Chrome Dev Tools 查看 WebSocket 握手是否正在进行以及您是否看到任何消息。
您是否有可能坐在切断流量的路由器/防火墙后面?您可以在 websocket.org 上尝试 WSS 吗? (在位置字段中输入 wss://echo.websocket.org。)
【讨论】:
我查看了 Chrome 开发者工具控制台窗口,它似乎没有阻止它(它报告成功)。这很可能是我的防火墙。我会在我的家庭网络上再试一次。 是的,似乎是防火墙/路由器切断了流量。谢谢。以上是关于websocket不断断开连接的主要内容,如果未能解决你的问题,请参考以下文章
WebSockets(Socket.io)与heroku自动断开连接,我应该扩展吗?