今天用 B 站看直播的时候遇到了这个问题,系统 macOS Monterey ,Safari 版本 15.1 ,B 站直播的弹幕加载不出来,检查网页发现主要是由于 WebSocket 报错引起,“WebSocket connection to 'wss://tx-bj-live-comet-06.chat.bilibili.com/sub' failed: The operation couldn’t be completed. (kNWErrorDomainPOSIX error 57 - Socket is not connected)”。此时 ClashX 设为系统代理,无论是直连模式、规则模式还是全局模式,都会发生这个错误,但只要退出 ClashX 或关闭系统代理后问题即消失。此问题只在 Safari 中出现,Chrome 和 Edge 则没有这个问题。这是 Safari 15 引入的新 Bug 吗?
解决方案:
Monterey 的 Safari 开启了 NSURLSession WebSocket 这个实验性特性,会导致 WebSocket 在 HTTPS 代理下无法工作,在开发者菜单中关掉之后一切正常。