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

时间:2016-01-31 22:46:48

标签: javascript node.js pubnub

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

问题是:

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

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

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

    湾我可以以某种方式摧毁频道或立即从所有群组中提取频道,所以我需要拨打2000电话,或者我是否需要删除每个用户的频道组的频道,因此我将不得不拨打10万个电话一次到pubnub

1 个答案:

答案 0 :(得分:2)

PubNub频道组

渠道组维护

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

频道组的正常运作是一项关键任务......

频道组按设计和预期工作。根据上面提供的指导,维护通道组中的通道无法做任何事情。 PubNub不会自动化频道组中的频道。我建议您根据数据库更新提供一些信号,以便您可以保持您的客户'渠道组 clean 。在您的应用服务器层(不在您的数据库层)中,您可以从成功的数据库提交中调用代码,以进行更新,插入和删除,以使您的频道组在实时中正确整理 :)

发信号离线用户

当您发送信号或任何类型的消息并且订阅客户端碰巧处于脱机状态时,您的客户端代码可以通过在用户重新联机时收到错过的消息来处理此问题。只需启用Storage & Playback add-on并使用history API即可获取自用户上次访问所有频道以来的消息。