【发布时间】:2013-05-20 20:34:59
【问题描述】:
我正在尝试为 webSocket 连接编写服务器。我已经仔细阅读了规范(76,而不是 75)。我正在使用雷区作为浏览器。
当我尝试在浏览器中从 javascript 创建 WebSocket 时:
var ws = new WebSocket("ws://localhost:8766/hoho");
浏览器响应
“Firefox 无法与位于 ws://localhost:8766/hoho 的服务器建立连接。”
我的服务器收到一个有效的客户端握手请求,它发回响应,然后繁荣。
我已经运行了我可以通过我的服务器找到的每个握手示例,并且我在每个实例中都完全匹配给定的响应。我非常有信心返回字节流是正确的。我不需要帮助调试我的代码,它正在按照我的意思做。我需要帮助调试我对握手协议的使用,因为当我给雷区我认为正确的响应时,它会嘲笑我。
我的问题是:我该如何调试这个东西?我能想到两种可能。
有什么方法可以让雷区告诉我为什么它拒绝我的握手?
网络上是否有工作的公共 webSocket 服务器服务?如果有,我可以代理它,观察两个方向的字节流,找出我的不同之处。
有没有人对这些方向有任何想法或任何其他想法?
感谢您的帮助。
【问题讨论】:
-
Gimite's Ruby websocket backend 现在似乎支持 76 草案。可以试试吗?
-
我也得到了带有“ws://”的
Firefox can't establish a connection to the server at ...和带有“http://”的An invalid or illegal string was specified" code: "12。 Chrome 对此给出了一个更好的错误(假设它是同一个问题)Wrong url scheme for WebSocket用于“http://”,但随后是一个荒谬的错误:Unexpected response code: 200用于“ws://”。服务器正在生成并发送结果。 -
我意识到
Unexpected response code: 200实际上对于 Google Chrome 是正确的,它应该是 101。而我缺少的标题... (tbray.org/drafts/wsock-00#anchor18)
标签: websocket