Pubnub - 从很多频道组中删除很多频道

Pubnub - removing a lot of channels from a lot of channel groups

我正在使用一种模式,其中每个用户都有自己的频道组,当他连接到某个聊天时 - 聊天会在后端添加到他的组中。这种方法允许用户同时连接到很多频道。
我还有一个调度程序,偶尔会批量删除聊天室连接到的数据库项目,因此我需要从用户的频道组中删除相关频道。

问题是:

  1. 我是否需要这样做以防止群组达到 2k 限制?或者不活跃的频道会自动销毁?

  2. 频道组维护 - 如果我有 2000 个聊天室,每个聊天室约 50 个用户:

    一个。如何有效清理用户频道组?

    b。我可以以某种方式销毁频道或一次从所有组中提取它吗,所以我需要进行 2000 次调用,或者我是否需要删除每个用户频道组的频道,所以我将不得不进行 100 000 次调用 pubnub一次?

PubNub 频道组

频道组维护

  • 您需要跟踪频道组中的频道数量。您可以使用 list channels API 获取频道组中的频道列表,然后对返回的数组执行 count/size。
  • 频道不会从频道组中删除,直到您的代码一次删除一个频道或当客户端(订阅频道组)调用 删除组 API。再次强调,您需要从客户端而不是服务器端执行此操作。
  • 清理 频道组只是您在应用程序代码中实现的要求,而不是 PubNub SDK 或服务器自动执行的操作。如果应从聊天室中删除用户,则从该用户的频道组中删除该频道。
  • 每个频道必须从每个频道组中一一删除。
  • 从服务器端,为它所在的每个频道组调用从频道组中删除频道。这不会花很长时间,即使它是 10K 的频道组.
  • 不建议向客户授予 manage 权限,因为 manage 权限的持有者可以将他们想要的任何频道添加到他们具有 read 权限的频道组打开并开始在该频道上接收消息。

Proper functioning of channel groups is a mission critical...

频道组按设计和预期工作。根据以上提供的指导,在维护频道组中的频道方面,您无所不能。 PubNub 不会自动化频道组中的频道。我建议您提供一些基于数据库更新的信号,以便您可以保持客户的频道组干净。在您的应用程序服务器层(而不是在您的数据库层),您可以从成功的数据库提交中调用代码进行更新、插入和删除,这将使您的频道组在 groomed in [=33] =]实时 :)

向离线用户发送信号

当您发送 信号 或任何类型的消息并且订阅客户端恰好离线时,您的客户端代码可以通过在用户重新在线时获取错过的消息来处理此问题.只需启用 Storage & Playback add-on 并使用 history API 获取自用户上次在线以来所有频道的消息。