今天用 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 代理下無法工作,在開發者菜單中關掉之后一切正常。