Safari 15.1 在有系統代理的情況下無法連接 WebSocket?


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM