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

如何获取Azure WebPubSub实例的已连接客户端数量?

解决Azure WebPubSub获取已连接客户端数量及WebSocket相关疑问

获取已连接客户端数量

  • 你尝试的wpsReq.request.connectionContext.clientConnections无法生效,原因是webPubSubContext的connectionContext仅包含当前请求对应的单个连接信息,并不提供全局的已连接客户端列表。
  • 要获取实例的已连接客户端总数,需使用Azure WebPubSub的Management SDK或直接调用REST API,具体步骤如下:
    1. 安装管理SDK:
      npm install @azure/web-pubsub
      
    2. 在函数中初始化管理客户端并统计连接数:
      const { WebPubSubServiceClient } = require("@azure/web-pubsub");
      
      module.exports = async function (context, wpsReq) {
        // 从环境变量读取连接字符串(避免硬编码)
        const connectionString = process.env.WEBPUBSUB_CONNECTION_STRING;
        const serviceClient = new WebPubSubServiceClient(connectionString, "你的Hub名称");
      
        // 遍历并统计指定Hub下的已连接客户端
        const connections = serviceClient.listConnections();
        let clientCount = 0;
        for await (const conn of connections) {
          clientCount++;
        }
      
        context.log(`当前已连接客户端数量:${clientCount}`);
        // 后续业务逻辑...
      };
      
    3. 权限说明:需为函数的身份(或连接字符串对应的权限)分配WebPubSub Contributor角色,确保能调用管理类API。

Azure WebPubSub的WebSocket相关说明

  • Azure WebPubSub本身就是托管的WebSocket服务器,你无需自行搭建或直接访问底层WebSocket服务。
  • 客户端直接通过WebPubSub提供的标准端点建立WebSocket连接(格式示例:wss://<你的资源名称>.webpubsub.azure.com/client/hubs/<Hub名称>),连接的维护、消息转发等底层操作均由Azure服务托管。
  • 你的Azure Function作为事件处理器,仅需响应WebPubSub推送的连接、断开、消息等事件,无需直接与WebSocket服务器交互,所有业务逻辑通过SDK或绑定即可完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:50:51