Azure 实时消息 Python SDK
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-messaging-webpubsubservice-py。
技能介绍
要解决什么问题
在浏览器或移动端做实时协作、通知或状态同步时,自己维护 WebSocket 集群、连接表和广播逻辑成本很高。Azure Web PubSub 把连接托管在托管服务里,你的后端只需要用 REST/ SDK 发消息、管组和权限。本技能面向 Python 服务端与 WebSocket 客户端,把官方 SDK 的常用路径整理成可复制的用法,而不是从零翻文档拼示例。
技能如何组织内容
文档按「服务端 → 客户端 → 异步」分层:
- 鉴权与令牌:优先
DefaultAzureCredential,本地与 Azure 托管标识同一套代码;get_client_access_token生成带角色的短时效连接 URL。 - 消息投递:
send_to_all、send_to_user、send_to_group、send_to_connection覆盖广播与定向场景;结构化 payload 建议 JSON 内容类型。 - 连接与组:
add_user_to_group/remove_user_from_group、连接存在性检查、close_connection与权限授予/撤销,用于多房间、多租户路由。 - 生命周期:同步用
with Client(...) as client,异步用async with包裹客户端与azure.identity.aio的凭据,避免泄漏 HTTP 连接与令牌缓存。
技能内附 最佳实践(同步/异步勿混用、用 roles 限权、客户端重连等)以及 references/ 下的能力清单与非主路径场景,适合对照生产检查项。
适用边界
这是 Azure 官方 Python SDK 的使用说明型技能,不包含自建 Pub/Sub 替代方案,也不替代你在应用层设计消息协议、幂等与离线补偿。连接字符串/访问密钥在文档中被明确为应尽量避免的路径;生产环境应配合 Entra 角色与短令牌策略自行落地。
使用场景
- Flask/FastAPI 后端需向所有在线浏览器推送工单状态变更,用 `send_to_all` 广播 JSON 事件
- 多人协作白板要按房间隔离消息,服务端用组 API 维护成员并用 `send_to_group` 投递
- 同一用户多标签页登录时,需用 userId 定向通知而不绑死单条 connection
- 生产环境排查僵尸连接,需检查连接是否存在并用带原因的 `close_connection` 断开
适合人员
- 在 Azure 上写 Python 实时 API、要为前端签发 WebSocket 连接令牌的后端工程师
- 负责集成官方 Python WebSocket 客户端、并处理断线重连的应用开发
- 需要把 PubSub 鉴权从连接字符串迁到 DefaultAzureCredential 与托管标识的平台工程师
- 设计多租户 SaaS 通知通道、要用 roles 限权并按用户/组路由消息的架构师