代码之家  ›  专栏  ›  技术社区  ›  ch271828n

公共互联网何时(以及多久)会排除WebSocket连接?

  •  0
  • ch271828n  · 技术社区  · 6 年前

    这个 spring documentation

    在公共Internet上,超出您控制范围的限制性代理可能会阻止WebSocket交互,这可能是因为它们未配置为传递升级头,或者是因为它们关闭了看起来空闲的长期连接。

    第二个问题可以通过心跳包来解决。然而,第一个问题多久出现一次 今天的世界

    此外,是否还会有其他问题使我无法使用WebSocket?

    P、 我在Flutter中使用WebSocket客户端,所以浏览器支持不是问题。

    非常感谢你的任何想法!

    0 回复  |  直到 6 年前
        1
  •  1
  •   ch271828n    6 年前

    到今天为止,现实世界中仍然有一些WebSocket不工作的情况,即使不像过去那样频繁。一个典型的例子是,当你在一个不支持WebSockets的公司代理/防火墙后面时(许多BlueCoat安装都有这个问题)。还有一些透明代理阻止WebSocket,即使这通常适用于未加密的连接。如果您使用WSS(WebSockets over TLS),大多数网络中介不会有WebSocket安装问题,除非它们通过在客户端中插入自定义证书来解密所有通信量(就像在某些公司网络上发生的那样)。然后,双向心跳可以用来确保中介不会关闭空闲的WebSocket。

    一般来说,如果应用程序是任务关键型的,则应始终提供备用传输,以防WebSockets不起作用。回退传输包括HTTP流和HTTP长轮询。