You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

websockets.serve处理器中无法获取WebSocket连接路径的问题

获取WebSocket连接路径的正确方法(websockets 14.1版本)

在websockets 10.x及以后的版本中,官方已弃用通过处理器第二个参数获取请求路径的方式,同时ServerConnection对象不再直接暴露path属性。要获取连接的请求路径,需通过websocket.request.path访问。

修正后的代码

import asyncio
from websockets import serve
from websockets.server import ServerConnection

async def handler(websocket: ServerConnection):
    # 通过request属性获取请求路径
    print(websocket.request.path)

async def main():
    server = await serve(
        handler,
        "0.0.0.0", 
        9000, 
    )

    print("Server started on 0.0.0.0:9000")
    await server.wait_closed()

if __name__ == "__main__":
    asyncio.run(main())

关键说明

  • websocket.request是http.Request对象,包含WebSocket握手阶段的HTTP请求信息,除path外,还可获取请求头(websocket.request.headers)、请求方法(websocket.request.method)等其他HTTP属性。
  • 官方弃用旧方法是为了统一请求信息的访问逻辑,将所有HTTP相关内容整合到request属性下,让API设计更清晰一致。

内容的提问来源于stack exchange,提问作者Harold Obasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:03:18