如何让 pusher 获得全球影响力
Posted
技术标签:
【中文标题】如何让 pusher 获得全球影响力【英文标题】:how to get global presence for pusher 【发布时间】:2015-05-20 13:11:14 【问题描述】:我正在构建一个聊天应用程序,我想获得一个列表,其中列出了我关注的哪些人在线以及他们所在的聊天室。
根据 pusher 文档,存在通道是每个通道的,并且
这与 jabber 风格的“我的哪些朋友在线”存在不同。 Pusher 目前没有为该用例提供任何开箱即用的功能。
https://pusher.com/docs/client_api_guide/client_presence_channels
因此,如果我要在推送器上创建此功能,我是否应该只创建一个全球频道并让每个人在后台静默连接到该频道以获得全球影响力 - 如果是这样,则限制为 100 人,所以它不会不可行。或者我应该只为每个用户创建一个频道,然后让用户为每个他们的朋友订阅一个频道(尽管这似乎有点低效)?请注意,这是我关注的一种单向关系,而不是一种双向的朋友关系。
【问题讨论】:
这里其实有两个问题。一个是关于根据您关注的用户获取全球用户数量,另一个是关于您应该如何构建您的频道。我已经在这里回答了用户数。我创建了另一个问题来回答频道结构一:***.com/questions/30353113/… 我刚刚在***.com/questions/30353113/…987654323@***.com/questions/30353113/… 上以社区 wiki 的形式发布了第二个问题的答案 【参考方案1】:正如您所指出的,Presence 频道更适合最多 100 个用户的房间。
注意:这背后的想法是,一个拥有更多内容的房间并不是真正的聊天会话。希望这种限制在未来会有所改变,并且会增加存在渠道的用例。
要计算您关注的在线用户数量,您需要确保每个用户都订阅了用户特定的频道(例如,myUserId-channel
或 private-myUserId-channel
,如果需要身份验证),然后查询 Pusher HTTP API 并检查用户特定通道是否为occupied
。如果是,则该用户订阅了该频道并因此在线。见Querying Application Channels。
更详细的描述见Showing who's online with a large number of users FAQ中的第1点
【讨论】:
以上是关于如何让 pusher 获得全球影响力的主要内容,如果未能解决你的问题,请参考以下文章