vue使用WebSocket如何在请求头传递参数

img


[图片]

img


此处为代码,Sec-WebSocket-Protocol: 属性值

网上查阅了相关的资料,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);

可以通过在创建 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 作为它们的值。您可以根据自己的需求设置不同的请求头和值。