网上查阅了相关的资料,websocket没有像http那样可以只定义请求头的一些参数,只有一个Sec-WebSocket-Protocol属性用于自定义子协议。
意思就是说可以将token当做一个参数传递给后端,只不过参数的封装形式是以Sec-WebSocket-Protocol为key的一个header属性值。
该回答引用chatgpt:
js可以通过ws的自定义协议头sec-websocket-protocol携带,也可以放在cookie里,在发起ws连接请求时往往会先发出一个http请求进行握手,这个步骤会自动携带cookie噢。
自定义协议头:
new WebSocket(addr,cookie);
import '/src/util/jsmpeg.min.js'
可以通过在创建 WebSocket 实例时传递 options 参数来设置请求头。示例代码如下:
javascript
const ws = new WebSocket('ws://example.com', {
headers: {
'Authorization': 'Bearer xxx',
'X-User-Id': '12345'
}
});
在这个例子中,我们设置了 Authorization 和 X-User-Id 这两个请求头,并使用 Bearer token 和用户 ID 作为它们的值。您可以根据自己的需求设置不同的请求头和值。