PubNub:如何获取对话历史记录

PubNub:如何获取对话历史记录,pubnub,Pubnub,我有一个被数百名用户使用的应用程序。用户可以开始彼此的私人聊天。 每个用户都有自己的唯一id和自己的静态通道id 例如: 用户id 1的专用频道id为:app-private-1 用户id 2的专用频道id为:app-private-2 UserID200的专用频道id为:app-private-200 等等 每个用户都订阅自己的私有通道id以获取私有消息,并且还知道所有其他用户私有通道id的列表,以便向他们发布私有消息 例如: 当用户标识1想要与用户标识2通话时,应: -用户ID 1在app-

我有一个被数百名用户使用的应用程序。用户可以开始彼此的私人聊天。 每个用户都有自己的唯一id和自己的静态通道id

例如:
用户id 1的专用频道id为:app-private-1
用户id 2的专用频道id为:app-private-2
UserID200的专用频道id为:app-private-200
等等

每个用户都订阅自己的私有通道id以获取私有消息,并且还知道所有其他用户私有通道id的列表,以便向他们发布私有消息

例如:
当用户标识1想要与用户标识2通话时,应: -用户ID 1在app-private-2频道上发布消息。
-订阅app-private-2的用户ID 2将获取消息。
-userId 2在app-private-1频道上向userId 1发回消息

问题是,我如何按时间顺序获取对话历史记录,以“谁对谁说了”的形式,以便将其呈现给用户(我的应用程序中还有一部分历史记录)

我不能使用PubNub的历史功能,因为它只提供一个频道的历史,我将失去谁对谁说的上下文。
此外,如果我将消息保存在我的数据库中,那么管理起来将是一件复杂的事情,并且在一方订阅通道组而另一方只订阅其中一个通道的情况下无法解决问题

有什么想法吗?

PubNub频道拓扑决策 这是您需要在应用程序设计早期做出的决定


您使用的策略使得在两个用户之间进行对话非常困难。为了简化此过程,您应该为每个用户到用户的私人聊天创建一个唯一的频道,并使用用户的私人频道仅用于通知:例如,您在abc频道收到了一条消息/邀请

你需要做的是获取两个用户频道的历史记录,并仅从这两个用户那里挑选消息。如果您没有在消息负载中存储userid,那么就没有办法知道

PubNub函数端点
此外,如果您从客户端应用程序中提取两个频道的历史记录,则用户将看到其他用户发布的所有消息,假设提取历史记录的用户具有对其他用户的私人频道的读取权限,但这将是不好的

因此,您需要调用您的服务器(最好实现一个,这样您就不必点击您的服务器)来提取两个频道的历史记录,并筛选出用户对用户对话的相关消息

PubNub聊天引擎的胜利
如果这是您的选择,请删除大部分设计和实现细节,使用许多插件(均为开源)来处理您需要的大量聊天功能。

您使用的策略使两个用户之间的对话变得非常困难。为了简化此过程,您应该为每个用户到用户的私人聊天创建一个唯一的频道,并使用用户的私人频道仅用于通知:例如,您在abc频道收到了一条消息/邀请。你需要做的是获取两个用户频道的历史记录,并仅从这两个用户那里挑选消息。如果您没有将userid存储在消息负载中,则无法知道。此外,如果您从客户端应用程序中提取两个频道的历史记录,则用户将看到其他用户发布的所有消息,假设提取历史记录的用户已读取其他用户的专用频道,但这将是不好的。因此,您需要调用服务器来提取这两个频道的历史记录,并筛选出用户对用户对话的相关消息。