我有两种类型的用户 Managers '和' Students '订阅了一个频道' all.channel ',我想要要应用以下行为:
一个。来自“经理”群组的用户将从两个用户组“经理”和“学生”中发布所有消息。
湾“学生”组中的用户只能从“经理”组的用户那里获得发布消息(不会看到“学生”发布消息)。
我的想法是创建两个渠道:
一个。 ' all.channel ' - ' Managers '和' Students '用户将向其发布。只有' Managers '用户才会订阅它。 pubnub'After Publish'功能只会将'Managers'消息链接到另一个名为' all.student.channel '的频道
湾' all.student.channel ' - 只有'学生'会订阅它。
我的问题是,PubNub中是否有任何内置工具或功能可以减少复杂性,甚至只有一个频道?
答案 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网络可以根据需要正确应用过滤器。重要的是仅包含非机密信息或需要加密的信息。