vue项目使用websocket添加自定义header头
常用方法
方法 1:使用标准 HTTP 头
WebSocket 的握手阶段使用 HTTP 协议进行,因此可以在 WebSocket 的 HTTP 请求头中添加 Authorization 字段。示例代码如下:
JavaScript Code复制内容到剪贴板
- const socket = new WebSocket('wss://example.com/socket');
- socket.addEventListener('open', (event) => {
- // 在握手阶段添加Authorization头
- socket.send('Authorization: Bearer ' + YOUR_TOKEN);
- });
- socket.addEventListener('message', (event) => {
- // 处理接收到的消息
- console.log('Received:', event.data);
- });
方法 2:使用自定义
WebSocket 子协议通过使用自定义的 WebSocket 子协议,可以在握手请求中定义 Authorization 信息。这需要服务器端和客户端都支持相应的子协议。示例代码如下:
JavaScript Code复制内容到剪贴板
- const socket = new WebSocket('wss://example.com/socket', 'custom-protocol');
- socket.addEventListener('open', (event) => {
- // 在握手阶段通过自定义协议传递Authorization信息
- socket.send('Authorization: Bearer ' + YOUR_TOKEN);
- });
- socket.addEventListener('message', (event) => {
- // 处理接收到的消息
- console.log('Received:', event.data);
- });
方法 3:使用 URL 参数
在 WebSocket 的连接 URL 中直接携带 Authorization 信息,这种方法简单直接,适用于一些简单的场景。示例代码如下:
JavaScript Code复制内容到剪贴板
- const socket = new WebSocket('wss://example.com/socket?authorization=' + YOUR_TOKEN);
- socket.addEventListener('message', (event) => {
- // 处理接收到的消息
- console.log('Received:', event.data);
- });
方法 4:使用 WebSocket 的扩展
某些 WebSocket 库支持使用扩展来携带 Authorization 信息。这通常需要在 WebSocket 的初始化阶段进行相应的设置。示例代码如下:
JavaScript Code复制内容到剪贴板
- const socket = new WebSocket('wss://example.com/socket', ['authorization']);
- socket.addEventListener('open', (event) => {
- // 在初始化阶段添加Authorization信息
- socket.send('Authorization: Bearer ' + YOUR_TOKEN);
- });
- socket.addEventListener('message', (event) => {
- // 处理接收到的消息
- console.log('Received:', event.data);
- });
本文来自于:https://apifox.com/apiskills/how-to-add-header-authorization