MozWebSocket 不响应握手
Posted
技术标签:
【中文标题】MozWebSocket 不响应握手【英文标题】:MozWebSocket not responding to handshake 【发布时间】:2012-02-04 15:49:12 【问题描述】: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)。
有什么想法吗?
【问题讨论】:
【参考方案1】:您是否确认您正确且完整地阅读了开头的标题?目前 Chrome 和 FireFox 之间 websocket 握手处理的主要区别在于,FireFox 更充分地通过缓存、接受编码、用户代理等填充 websocket 握手请求。特别是仔细检查“连接”标头,每个 RFC 可以有多个值并在 FireFox 上执行,但在 chrome 上不执行。 FireFox 连接标头通常如下所示:“Connection: keep-alive, Upgrade”。这可能会使不期望该标头具有多个值的握手解析器出错。
否则你的握手响应在我看来是正确的,假设 $accept 值被正确计算,如果 Chrome 接受它,听起来就是这样。
【讨论】:
是的,firefox 发送“Connection: keep-alive, Upgrade”,我该怎么办?【参考方案2】:我刚刚意识到这是我的 Firefox (?) 犯规了。我卸载了 FF,删除了整个私人数据(真的是所有数据!),我又安装了 FF 一次……同样的问题!所以我不知道是我的 Windows 问题还是……没关系……谢谢你所做的一切。
【讨论】:
以上是关于MozWebSocket 不响应握手的主要内容,如果未能解决你的问题,请参考以下文章
HTML5 / PHP WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:200
git lfs 批处理响应:发布 https://../info/lfs/objects/batch: ..proxyconnect tcp: tls: 第一条记录看起来不像 TLS 握手