0

Firefox 10 不会接受(我真的不知道?)我的握手。Offcorse 这是 Mozilla 然后使用 MozWebSocket 而不是 WebSocket。我的服务器响应标头是:

                $reply = "HTTP/1.1 101 Switching Protocols\r\n" .
                        "Upgrade: websocket\r\n" .
                        "Connection: Upgrade\r\n" .
                        "Sec-WebSocket-Accept: {$accept}\r\n\r\n";

它在 Chrome 16 完美下运行,但在 Firefox 上它只是在等待某些东西,即使服务器说握手完成。然后在一段时间后,offcorse 客户端进入状态 3 (DISCONNECT)。

有任何想法吗?

4

2 回答 2

3

您是否确认您正在正确且完整地阅读开头的标题?目前 Chrome 和 FireFox 之间 websocket 握手处理的主要区别在于,FireFox 更充分地通过缓存、接受编码、用户代理等填充 websocket 握手请求。特别是仔细检查“连接”标头,每个 RFC 可以有多个值并在 FireFox 上执行,但在 chrome 上不执行。FireFox 连接标头通常如下所示:“Connection: keep-alive, Upgrade”。这可能会使不期望该标头具有多个值的握手解析器绊倒。

否则你的握手响应对我来说是正确的,假设 $accept 值被正确计算,这听起来像是 Chrome 接受它。

于 2012-02-04T16:38:03.987 回答
0

I just realized that it is my Firefox (?) fould. I uninstalled FF, deleted whole private data (seriously everything!) and I have installed FF one more time... And the same problem! So I don't know if it is my Windows problem or sth... Never mind... thanks for everything.

于 2012-08-01T09:25:31.703 回答