Muh*_*mer 4 firefox google-chrome websocket node.js socket.io
一切都在 chrome 中正常工作。没问题。
在 Firefox 中,我收到一个错误:Firefox 无法与位于 wss://domain.com 的服务器建立连接
如果您转到https://websocket.org/echo.html并用 chrome 中的 wss://domain.com 替换位置,则这是可重现的,它可以工作,而 ff 则不能。
我无法弄清楚为什么?
使用 Nodejs 并在 heroku 上运行,在 cloudflare 后面。
编辑
所以我根据布拉德的提示进行了修复。
我正在为 websocket使用https://github.com/websockets/ws/blob/master/doc/ws.md。它有一个选项perMessageDeflate。
现在禁用它使其在 FF 中工作。
不确定发生了什么,但这修复了它。(我是否也想在客户端使用这个库?)
我在 MDN 上找到的唯一东西就是这个
Gecko 8.0 从 Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5) 开始,WebSocket 协议的 deflate-stream 扩展已被禁用,因为它已从规范草案中弃用。这解决了与某些站点的不兼容问题。
Firefox 用户会收到 400 Bad Request 的回复。至于原因,目前还不是很明显。Firefox 和 Chrome 之间的请求数据几乎相同。我看到的唯一区别是 Chrome 有更多的这个标题:
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits=10; server_no_context_takeover; client_no_context_takeover; server_max_window_bits=10.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4303 次 |
| 最近记录: |