【发布时间】:2014-05-31 14:41:27
【问题描述】:
Pusherapp 会在您订阅会员数时计算您自己。有什么办法不包括你自己?
我有一个频道计数成员的预览视图。如果我在另一个选项卡中加入房间,我希望该数字增加。
得到计数,然后减一的问题是,当你真正加入时,这个数字不会增加。它还计算其他正在查看预览的成员,而不是我实际有意订阅的成员。有什么想法吗?
【问题讨论】:
标签: javascript pusher
Pusherapp 会在您订阅会员数时计算您自己。有什么办法不包括你自己?
我有一个频道计数成员的预览视图。如果我在另一个选项卡中加入房间,我希望该数字增加。
得到计数,然后减一的问题是,当你真正加入时,这个数字不会增加。它还计算其他正在查看预览的成员,而不是我实际有意订阅的成员。有什么想法吗?
【问题讨论】:
标签: javascript pusher
有3种可能的方法:
您可以通过将 members 集合与 members.me 对象进行比较来确定 您 是谁。见:http://pusher.com/docs/client_api_guide/client_presence_channels#members_me
您可以查询 Pusher 的 Web API 以获取用户计数。看: http://pusher.com/docs/rest_api#method-get-users
每个用户都有一个 ID,因此您可以确定哪个用户是当前使用该 ID 的用户。
您可以注册Presence WebHook,以便在用户加入或离开频道时通知您的服务器。在这种情况下,您可能需要维护自己的计数,但您可以使用上面的方法 2 获取初始值。
目前无法简单地查询成员并说“排除我”作为该查询的一部分。所以唯一的解决方案是获取完整的集合(在客户端或服务器上)并实现一些自定义计数逻辑。
【讨论】:
user_id 这确保一个用户只被计算一次,因为它被识别为同一个用户。这也意味着如果该用户已经订阅了频道,您将不会收到重复的 member_added 事件。我还在上面添加了第 3 个 WebHooks 方法,它使用服务器功能,但是是实时的。