錯誤示例一:
websocket = new WebSocket("ws://192.168.1.24:8024/ws/monitor", ["Test:" + sn]);
上面代碼錯誤,WebSocket 的第二個參數不能包含冒號,否則會報錯,提示不合法
DOMException: Failed to construct 'WebSocket': The subprotocol 'Test:202110008' is invalid.
錯誤示例二:
websocket = new WebSocket("ws://192.168.1.24:8024/ws/monitor", ["Test", sn]);
上面的代碼錯誤,雖然這里的第二個參數是數組,但是傳兩個參數時,后端依然收到的是一個參數,並不是說會丟棄第二個參數,而是以逗號為分割符,連接的兩個參數的字符串,並且會報錯
WebSocket connection to 'ws://192.168.1.24:8024/ws/monitor' failed: Error during WebSocket handshake: 'Sec-WebSocket-Protocol' header must not appear more than once in a response
大致意思是說,同樣一個請求返回頭,不能重復出現,只能有一個,這個就很奇怪了,我也不清楚為啥
錯誤示例三:
上面的錯誤說返回的請求頭重復了,於是我想着把后端的請求頭設置去掉,就是去掉下圖中紅框的部分,但是又出現了其他錯誤
WebSocket connection to 'ws://192.168.1.24:8024/ws/monitor' failed: Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received
大致意思是說,請求的時候帶了協議參數,但是返回的時候卻沒有帶,握手失敗
正確示例:
websocket = new WebSocket("ws://192.168.1.24:8024/ws/monitor", ["Test" + sn]);
數組中只寫一個對象,其實這里本來是只傳一個token的,但是測試的時候只想帶一個自己想要測試的sn數據,所以才想着既然是數組,那便多傳一個參數,結果發現怎么改都不行,還是只能傳一個參數,那就給這個參數放一個識別字符串,包含這個字符串,表示是要特殊處理一下的測試