【发布时间】:2019-02-27 09:04:31
【问题描述】:
在 chrome 中一切正常。没问题。
在 Firefox 中我收到一个错误:Firefox 无法在 wss://domain.com 上建立与服务器的连接
如果您转到 https://websocket.org/echo.html 并在 chrome 中将 location 替换为 wss://domain.com 则可以重现,而 ff 则无效。
我不知道为什么?
使用 Nodejs 并在 heroku 上运行,在 cloudflare 后面。
编辑
所以我修复了布拉德的提示。
我将https://github.com/websockets/ws/blob/master/doc/ws.md 用于websocket。
它有一个选项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。 -
布拉德将其发布为解决问题的答案,我不接受它
-
再次非常感谢
标签: node.js google-chrome firefox websocket socket.io