我的websocket连接工作:
它不工作:
浏览器中没有控制台错误。我可以看到websocket已创建,但它从未在桌面Safari上触发“打开”事件。在服务器端,除了桌面Safari之外,任何地方的连接都很好,在那里我看不到任何东西。
websocket位于作为源的确切域上,并且两者都使用安全连接(https/wss)
生产中有很多活动部件(例如负载均衡器)。我已经查看并配置了生产中每一层的“粘性”和TLS版本等内容。
同样,它在大多数地方都有效。
我在想,一定有TLS、CORS等我没有完全理解的东西导致了故障。
这是在iOS上发生的情况(在Chrome桌面等中也是如此):
以下是 Mac 上的 Desktop Safari 中发生的情况:
井。经过几个小时的旋转,我解决了它:
AWS负载平衡器属性中有一个名为“客户端端口保留”的设置。一旦我检查了这一点,websockets开始从桌面Safari中流出: