超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

Python WebSocket 开发与连接生命周期

WebSocket、消息队列与实时通信#Python全栈#第十六阶段#WebSocket、消息队列与实时通信#Python WebSocket 开发与连接生命周期约 878 字 · 3 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

FastAPI 中怎样定义 WebSocket 路由,并完成最小收发流程?

追问 accept、receive_text 与 send_text 分别在哪个阶段调用?客户端没有成功建立连接时应怎样观察错误?

WebSocket 路由与普通 HTTP 路由在输入、返回和异常处理上有哪些差异?

追问 为什么不能照搬一次请求返回一个 JSON 响应的处理方式?握手前拒绝和连接后关闭应怎样分别设计?

怎样为 WebSocket 消息定义 JSON 结构并校验?

追问 未知消息类型、缺少字段、错误类型和格式损坏如何反馈?怎样限制单条消息大小,避免业务异常直接结束所有连接?

接收循环中怎样处理正常断开、网络异常与业务异常?

追问 WebSocketDisconnect、发送失败和任务取消怎样进入清理流程?重复清理连接是否安全,日志应记录什么?

一个连接同时需要接收指令和发送通知,怎样组织异步任务?

追问 怎样避免多个协程同时读取同一连接?若采用独立发送队列,一侧退出后如何停止另一侧并回收资源?

在 WebSocket 协程里调用同步数据库或外部接口会有什么影响?

追问 怎样判断事件循环被阻塞?异步客户端、线程池和后台任务分别适合什么操作,取消时怎样处理正在执行的工作?

WebSocket 连接建立时如何识别用户?

追问 浏览器原生构造器能否任意设置 Authorization 请求头?Cookie、短时连接票据和连接后的认证消息各需要哪些约束?

为什么已有 CORS 配置,还需要检查 WebSocket 的 Origin 与身份?

追问 使用 Cookie 的连接如何防止恶意网页跨站发起操作?非浏览器客户端能否伪造 Origin,为什么来源校验不能替代鉴权?

连接长期存在时,令牌过期、退出登录和账号禁用如何生效?

追问 定时复核、重新认证或主动关闭怎样选择?权限被撤销后,已订阅的房间和待发送的数据怎样处理?

用户申请加入某个班级讨论房间时,服务器需要检查什么?

追问 能否直接信任客户端提交的 user_id、tenant_id 和 room_id?怎样分别校验加入、发言和接收范围,并记录拒绝原因?

框架核对资料: FastAPI:WebSockets。