PubNub:我可以将用户划分为多个群组并仅在一个频道上从一个群组获取消息吗?

时间:2018-02-06 07:58:01

标签: pubnub

我有两种类型的用户 Managers '和' Students '订阅了一个频道' all.channel ',我想要要应用以下行为:

一个。来自“经理”群组的用户将从两个用户组“经理”和“学生”中发布所有消息。

湾“学生”组中的用户只能从“经理”组的用户那里获得发布消息(不会看到“学生”发布消息)。

我的想法是创建两个渠道:

一个。 ' all.channel ' - ' Managers '和' Students '用户将向其发布。只有' Managers '用户才会订阅它。 pubnub'After Publish'功能只会将'Managers'消息链接到另一个名为' all.student.channel '的频道

湾' all.student.channel ' - 只有'学生'会订阅它。

我的问题是,PubNub中是否有任何内置工具或功能可以减少复杂性,甚至只有一个频道?

1 个答案:

答案 0 :(得分:0)

经理&学生配置

  

Security is important。学生不应该看到经理的私人消息。

您需要考虑安全性。只有managers应该能够看到manager条消息。考虑为管理员多路复用您的频道。管理员也会同时订阅root.managers频道和root.students频道。虽然students仅订阅root.students频道。这样,您就可以向root.*上的经理授予读/写权限。您可以授权root.students.roomID上的学生阅读/写作。

  

您还可以考虑ChatEngine一个开放且可扩展的聊天SDK和用于构建群组聊天的API。

下面有更多频道配置选项供您考虑。

频道配置选项

适用于PubNub SDK 4.0及更高版本。多路复用SDK几乎支持 50个频道。您可以进一步增加此数量,但会影响设备性能。最好使用核心PubNub Stream Controller产品的渠道组功能。流控制器包括以下频道订阅增强功能。

通配符订阅

最大可寻址频道:(无限制)

PubNub还支持Wildcard Subscriptions using a Hierarchical dot notation。今天在PubNub中,您可以订阅频道 "a.b.*" ,并在a.b以下的任何频道接收消息。您可以发布到频道 "a.b.c" ,并在您的通配符订阅中接收该消息。请注意,层次结构支持的最大深度目前是 3 的深度。例如 "a.b.*" 很好但不支持 "a.b.c.*"

频道组

最大可寻址频道:(2,000✕10= 20,000)

使用PubNub通道组动态控制设备的数据流。您可以远程控制设备订阅的流,并从频道列表中动态添加删除频道。您可以多路订阅最多10个通道组,每个通道组最多可包含2,000个通道。

复用

最大可寻址频道:(~50)

您可以通过订阅通配符渠道渠道组在线活动流渠道等组合来多路连接。建议将多路复用通道保持在50以下,以获得最佳设备性能。

流过滤:

最大可寻址频道:(无限制)

Stream Filter允许订阅者应用过滤器仅接收满足过滤条件的消息。消息过滤器由订阅客户端设置,但它应用于服务器端,从而防止不需要的消息(那些不符合过滤条件的消息)到达订户。流过滤器使用两个组件实现:发布上的元字典和订阅上的过滤器表达式。过滤器应用于客户端订阅的所有通道。当邮件被加密时(初始化PubNub时使用加密密钥),元字典是纯文本,因此PubNub网络可以根据需要正确应用过滤器。重要的是仅包含非机密信息或需要加密的信息。