websocket携带头部信息
时间: 2025-07-21 16:29:03 AIGC 浏览: 21
### 如何在 WebSocket 连接中添加自定义头部信息
WebSocket 协议本身不直接支持像 HTTP 那样携带自定义头部字段,不过可以在 WebSocket 连接建立前通过 HTTP 升级协议 (Upgrade) 来传递这些信息。具体来说,在 WebSocket 的 HTTP 握手请求阶段可以加入自定义的 HTTP 头部[^1]。
对于 Python 中实现这一点的方法之一是使用 `websocket-client` 库,并且可以通过修改库中的源码或者利用其提供的接口来设置额外的头部数据。下面给出了一种基于此库的方式:
```python
import websocket
def on_message(ws, message):
print(f"Received: {message}")
def on_error(ws, error):
print(f"Error occurred: {error}")
def on_close(ws):
print("Connection closed")
header = {
'User-Agent': 'Mozilla/5.0',
'Custom-Header': 'MyValue'
}
ws_url = "ws://echo.websocket.org"
ws = websocket.WebSocketApp(
ws_url,
header=list(map(lambda k: f"{k}: {header[k]}", header)),
on_message=on_message,
on_error=on_error,
on_close=on_close)
ws.run_forever()
```
上述代码展示了如何向 WebSocket 请求添加自定义头部信息。这里创建了一个字典 `header` 存储想要发送给服务器的信息,之后将其转换为字符串列表形式传入到 `WebSocketApp()` 构造函数里作为参数[^4]。
需要注意的是,当客户端尝试与服务端建立 WebSocket 连接时,会先发起一次普通的 HTTP 请求并附带必要的 Upgrade 字段以及其他可能需要的标准或非标准头部;如果一切正常,则双方同意切换至 WebSocket 通信模式[^3]。
阅读全文
相关推荐



















