【问题标题】:Get pusherapp members count in channel without counting self获取 pusherapp 成员在频道中计数而不计算自己
【发布时间】:2014-05-31 14:41:27
【问题描述】:

Pusherapp 会在您订阅会员数时计算您自己。有什么办法不包括你自己?

我有一个频道计数成员的预览视图。如果我在另一个选项卡中加入房间,我希望该数字增加。

得到计数,然后减一的问题是,当你真正加入时,这个数字不会增加。它还计算其他正在查看预览的成员,而不是我实际有意订阅的成员。有什么想法吗?

【问题讨论】:

    标签: javascript pusher


    【解决方案1】:

    有3种可能的方法:

    1. 您可以通过将 members 集合与 members.me 对象进行比较来确定 是谁。见:http://pusher.com/docs/client_api_guide/client_presence_channels#members_me

    2. 您可以查询 Pusher 的 Web API 以获取用户计数。看: http://pusher.com/docs/rest_api#method-get-users

      每个用户都有一个 ID,因此您可以确定哪个用户是当前使用该 ID 的用户。

    3. 您可以注册Presence WebHook,以便在用户加入或离开频道时通知您的服务器。在这种情况下,您可能需要维护自己的计数,但您可以使用上面的方法 2 获取初始值。

    目前无法简单地查询成员并说“排除我”作为该查询的一部分。所以唯一的解决方案是获取完整的集合(在客户端或服务器上)并实现一些自定义计数逻辑。

    【讨论】:

    • 谢谢,不过我不想下载整个会员收藏。
    • 是的,其余的 api 是我目前倾向于使用的方法,但它不是实时的,需要轮询。由于这计入消息配额,它可能需要一些本地缓存,这是一个超级痛苦。
    • 是否可以将 userId 设置为订阅的一部分?所以我可以将所有查看者设置为相同的 id,使他们不计入订阅,而是在不同的订阅中使用他们的真实 id?
    • 当你验证一个用户时你提供一个user_id 这确保一个用户只被计算一次,因为它被识别为同一个用户。这也意味着如果该用户已经订阅了频道,您将不会收到重复的 member_added 事件。我还在上面添加了第 3 个 WebHooks 方法,它使用服务器功能,但是是实时的。
    猜你喜欢
    • 1970-01-01
    • 2021-02-27
    • 2022-09-25
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 1970-01-01
    相关资源
    最近更新 更多