gpt4 book ai didi

private - PubNub 最佳实践 : How to manage private rooms?

转载 作者:行者123 更新时间:2023-12-02 18:57:54 26 4
gpt4 key购买 nike

我正在学习 pubnub,并且阅读了他们的文档,但我就是找不到如何管理多房间聊天框。

默认情况下,任何人都可以收听某个 channel 。订阅和发布很容易。

我想要的是有一个主要的公共(public)房间(到目前为止一切都很好),但任何人都应该能够与其他人私下交谈,而不必担心被其他用户阅读的风险。

这些动态房间将带有选项卡,用户应该能够从一个房间转到另一个房间。

另一个要求是,与某人私下交谈不会将您踢出您订阅的其他房间(聊天时您仍然可以收到另一个房间已发布新消息的通知)

实现这一目标的最佳实践是什么?

  • 我会使用不同的 channel (动态创建)吗?
  • 我会使用一个 channel 并根据消息的状态、伪房间 ID 或主角过滤消息吗?
  • 我会使用多路复用(仅一个套接字)吗?

我需要知道实现此目标的最佳方法,因为文档仅描述了单个房间的基本场景,而互联网上没有任何相关信息。

谢谢。

PS:我知道 PubNub 一次不会推荐超过 2 个 channel (尽管我很难找到对此的解释)。

PPS:我正在使用 punbub 和 socket.io

最佳答案

Socket.IO 和 PubNub 管理聊天服务的私有(private)房间

您正在寻求一种创建多房间聊天服务的方法,可能类似于 IRC 客户端,您可以在其中加入并坐在多个聊天室(例如在 freenode.net 上)。这是可能的,并且需要一些特殊的任务才能让您正确完成。

您将首先打开两个 channel ,一个用于主聊天室,另一个用于您的私有(private)“ME”聊天室。使用此侧私有(private)“ME” channel ,您将需要创建一个长且不可预测的 session ID 样式 channel 名称,通常如下所示:

YTQyOGFiNWEtNTZmZC00OGVhLTgxZjktMWE3ZmMyMzc3MTRhCg==

这就像用户的引用 ID。此 ID 可用于私有(private)一对一聊天,另一个房间可用于群聊。您将使用我们称为 PubNub Access Manager 的访问控制管理来保护此群聊的安全。 (PAM)。

有关其他安全实践,您需要查看我们的安全建议指南,网址为 PubNub Support for Security在我们的帮助台和知识库上。

现在我们已经建立了私有(private) channel ,通过您的私有(private)服务器(可以提供权限的服务器)发送和接收聊天内容,可以实现安全通信,从而允许在每个用户的基础上转发消息。您可以通过阅读 Sending Events from a Server to a Socket IO Client 的这一部分来了解如何执行此操作。 PubNub 上的文档。

第二个 channel 将用于所有房间的公共(public)聊天。对于多选项卡支持,您只需通过 io.connect() 方法添加新房间,即可使用 PubNub 上 Socket IO 的 channel 复用功能。每次打开新选项卡时,您都会通过 io.connect() 打开一个新的命名空间,您可以无限使用该命名空间。但请注意,您一次只能连接到不超过 2 个 PubNub channel (您已在问题中指出)。

以下是订阅多个提要和类别的 PubNub Socket IO 方法:

Socket.IO 文档

https://github.com/pubnub/pubnub-api/tree/493d7fc97fb683379fc78be3ca7ad9bc97eb4200/socket.io#restricting-yourself-to-a-namespace

Vimeo 上的 Socket.IO 视频

http://vimeo.com/34496366

Socket.IO 多路复用代码示例

https://github.com/pubnub/pubnub-api/tree/493d7fc97fb683379fc78be3ca7ad9bc97eb4200/socket.io/multiplexing

总而言之,您将使用安全方法建立私有(private)“ME” channel ,以按用户发送/接收消息。还有一个公共(public)“聊天” channel ,推送所有公共(public)聊天室数据。多路复用对于公共(public)聊天非常重要。

关于private - PubNub 最佳实践 : How to manage private rooms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com