如何让 Pusher 获得全球影响力

how to get global presence for pusher

我正在构建一个聊天应用程序,我想获得一个列表,其中包含我关注的哪些人在线以及他们所在的聊天室。

根据 pusher 文档,存在频道是每个频道,

This is not the same as jabber style “which of my friends are online” presence. Pusher doesn’t offer anything out of the box for that use case right now.

https://pusher.com/docs/client_api_guide/client_presence_channels

因此,如果我要在推送器上创建此功能,我是否应该只创建一个全球频道并让每个人在后台默默地连接到该频道以获得全球影响力 - 如果是这样,则有 100 人的限制所以这是不可行的。或者我应该只为每个用户创建一个频道,然后让用户为每个与他们成为朋友的人订阅一个频道(尽管这看起来有点低效)?请注意,这是我关注的人的单向关系,而不是双向朋友关系。

正如您所指出的,Presence 通道更适用于最多 100 个用户的房间。

注意:其背后的想法是,拥有更多聊天室的房间并不是真正的聊天会话。希望这个限制在未来会有所改变,它会增加存在通道的用例。

要计算您关注的在线用户数量,您需要确保每个用户都订阅了用户特定的频道(例如 myUserId-channelprivate-myUserId-channel 如果auth 是必需的)然后查询 Pusher HTTP API 并检查用户特定的频道是否是 occupied。如果是,则该用户订阅了该频道并因此在线。参见 Querying Application Channels

有关更详细的说明,请参阅 Using presence for large groups of users