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

如何获取Pubnub中指定CHANNEL的订阅用户数量

PubNub 特定频道订阅用户总数查询方案

PubNub 没有原生接口可以直接获取精准的频道订阅用户总数量,官方提供两种对应场景的替代实现方案:

方案1:实时在线订阅连接数统计(适用于需要统计当前在线订阅用户的场景)

依赖 PubNub 自带的 Presence 在线状态功能实现:

  • 先在 PubNub 管理后台对应密钥对的功能配置中,开启 Presence 功能,可选开启 Presence Announce 配置,确保用户上下线事件都会被完整推送。
  • 你可以选择两种统计方式:
    1. 服务端监听目标频道的 Presence 事件,自行维护计数器:收到 join 事件时计数+1,收到 leave 或 timeout 事件时计数-1
    2. 直接调用 here_now 接口获取当前频道的实时在线连接数,示例代码(Python SDK 为例):
# 查询指定频道的当前在线连接数
res = pubnub.here_now().channels("your_target_channel").sync()
# 输出总在线连接数
print(res.total_occupancy)
  • 注意:该方案统计的是实时在线的连接数,如果同一个用户在多台设备同时订阅该频道,会被计为多个连接,离线用户不会被计入统计结果。

方案2:全量订阅用户数统计(适用于需要统计所有历史/已订阅用户,包含离线用户的场景)

需要在业务层自行维护订阅关系,官方没有持久化存储订阅用户列表的功能:

  • 用户触发频道订阅操作时,在你自己的业务数据库中新增用户ID和频道的绑定关系,做去重处理避免同一用户多次订阅被重复计数
  • 用户主动退订频道时,删除对应的绑定关系
  • 需要统计总数时,直接查询数据库中该频道对应的去重用户数即可

提示:如果你的业务允许用户永久订阅不主动退订,可以不对退订事件做处理,统计值即为累计订阅过该频道的总用户数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:07