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

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

问题是:

  1. 我是否需要这样做才能防止群体受到2k的限制? 或不活动的频道将被自动销毁?

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

    一个。 我怎样才能有效地清理用户的频道组?

    湾 我可以以某种方式破坏频道或从所有的组中提取一次,所以我将需要打2000个电话,或者我需要删除每个用户的频道组的频道,所以我将不得不打一次100万电话给pubnub

PubNub渠道组

渠道组维护

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

渠道小组的正常运作是关键任务

渠道小组按照devise和预期工作。 根据上述指导,在维护频道组中的频道方面,您不能做任何事情。 PubNub不会自动化频道组中的频道。 我build议你提供一些基于数据库更新的信号,这样你可以保持你的客户的渠道组清洁 。 在你的应用服务器层(不在你的数据库层),你可以调用成功的数据库提交代码进行更新,插入和删除,这将使你的频道组正确地进行实时 🙂

发信给离线用户

当您发送信号或任何types的消息,并且订阅客户端恰好处于脱机状态时,您的客户端代码可以通过在用户重新联机时收到错过的消息来处理。 只需启用存储和播放加载项,并使用history API即可获取自用户最近一次联机所有频道以来的消息。