SuperAPI AI 工具集

litestar-websockets

编程与开发

查看项目

更新于 10-15 16:48

技能介绍

用途:帮助在 Litestar 中构建 WebSocket 端点,按交互模式选择合适的接口,并规范连接生命周期与测试。

主要能力与选型:

  • 低层 @websocket:手动 accept、receive、send 与任务编排,适合完全掌控接收循环和 socket 操作。
  • @websocket_listener 或 WebsocketListener:事件驱动、类型化消息的接收—返回—发送流程,简化业务逻辑。
  • @websocket_stream:从异步生成器主动向客户端单向推送。
  • send_websocket_stream():低层处理器或监听器中同时发送流并接收消息。
  • 仅在需一致扩展连接级行为时使用自定义 websocket_class。

使用方式与规则:先选定接口,再决定文本或二进制传输、原始 socket 方法或类型化序列化,显式处理接受、断开与清理。DI、守卫、DTO、自定义 websocket 类只在简化端点契约时引入。传输模式是协议层选择,不等同于 Python 类型;避免在多处读取同一 socket,除非有意协调。

推荐默认:默认文本传输(除非确需二进制);消息模式保持显式且狭窄;消息契约稳定时由类型化监听器与支持 DTO 的处理器负责序列化;断开时及时停止后台任务与生成器;把 WebSocket 测试当作协议测试而非仅函数测试。

限制与注意事项:资料未提供具体版本、代码示例或安装命令。不要手写接收循环来替代已匹配的监听器;不要无协调地混用流与手动接收;不要在断开后遗留无限循环;不要把大型领域逻辑直接塞进回调。

参考文件按需阅读:低层模式、DI、生命周期钩子、传输模式、自定义类与手动流协调见 references/low-level-patterns.md;监听器、类型化收发、流及组合见 references/listener-and-stream-patterns.md。

相关技能衔接:服务端事件分发用 litestar-channels,连接认证授权用 litestar-authentication 或 litestar-security,WebSocket 客户端模式与断开断言用 litestar-testing,依赖服务或作用域资源时用 litestar-dependency-injection。