在某些稍低一些版本的 Chrome 上與 Workerman 進(jìn)行 WebSocket 握手失敗,比如 Windows 版的 Chrome 41,原因是該版本的瀏覽器在 WebSocket 握手時默認(rèn)會傳一個 Sec-WebSocket-Protocol 頭:
Sec-WebSocket-Protocol: undefined
然后就發(fā)生了這種錯誤:
WebSocket connection to 'ws://127.0.0.1:8100/' failed: Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received
建立連接的方法很簡單,并沒有傳第二個參數(shù):
var ws = new WebSocket("ws://127.0.0.1:8100");
難道這是瀏覽器的 BUG?我在高版本的 Chrome 上即使故意傳一個 undefined 的變量給第二個參數(shù),也不會發(fā)送 Sec-WebSocket-Protocol 頭,而我說的版本中,即使我第二個參數(shù)傳 null 也會有這個頭。
請問除了升級瀏覽器外有沒有什么辦法解決這個?