前端使用websocket怎么携带header
时间: 2024-02-02 22:05:01 浏览: 294
在使用 WebSocket 建立连接时,可以通过在 HTTP 请求头中添加自定义的请求头来携带 header 信息。具体步骤如下:
1. 在前端发起 WebSocket 连接请求时,使用 `XMLHttpRequest` 对象创建一个 HTTP 请求,可以在该请求上设置自定义的请求头信息,例如:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'ws://example.com');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.send();
```
这里将 `Authorization` 请求头设置为了 JWT token。
2. 服务器在收到请求时,可以从 HTTP 请求头中获取自定义的请求头信息,例如:
```python
import asyncio
import websockets
async def handler(websocket, path):
print(websocket.request_headers['Authorization'])
await websocket.send('Hello, world!')
asyncio.get_event_loop().run_until_complete(
websockets.serve(handler, 'localhost', 8765))
asyncio.get_event_loop().run_forever()
```
这里使用 Python 的 `websockets` 库作为 WebSocket 服务器,可以通过 `websocket.request_headers` 获取请求头信息。
注意:WebSocket 和 HTTP 是两个独立的协议,WebSocket 连接的请求头并不会传递给后续的 WebSocket 消息传输。如果需要在 WebSocket 消息中携带 header 信息,需要在消息体中进行定义。
阅读全文
相关推荐
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)