我正在构建一个聊天应用程序,并且我希望获得一个列表,列出我所关注的人在线以及他们所在的聊天室。
根据推文文档,存在通道是每个通道和
这与jabber风格“我的哪些朋友在线”存在不一样。 Pusher现在没有为该用例提供任何开箱即用的东西。
https://pusher.com/docs/client_api_guide/client_presence_channels
因此,如果我要在推送器上创建此功能,我是否应该创建一个全局频道并让所有人在后台默默地连接到该频道以获得全球存在 - 如果是这样的话,那么就有100个人的限制因此它不会是可行的。或者我应该为每个用户创建一个单一频道,然后让用户为每个与他们成为朋友的人订阅一个频道(虽然这似乎有点低效)?请注意,这是我追求关系而不是双向朋友关系的一种方式。
答案 0 :(得分:2)
正如您所指出的,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点