错误示例一:
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数据,所以才想着既然是数组,那便多传一个参数,结果发现怎么改都不行,还是只能传一个参数,那就给这个参数放一个识别字符串,包含这个字符串,表示是要特殊处理一下的测试