首页 > 解决方案 > pubnub 上的线程消息传递

问题描述

我们想在 Pubnub 的聊天频道中为消息创建线程。例如,某人可以通过“创建线程”并开始聊天来响应频道中的特定消息。是否有规定的方法来模拟这种行为?如果是这样,您能否参考文档?

这是你在 slack 中看到的行为,供参考。

标签: pubnub

解决方案


没有针对线程消息传递的现成解决方案。但是,可以通过使用元数据标记它们(使用 PN 对象和/或 MessageActions),然后在您的端进行一些编码来维护和处理它们的关系,从而在消息之间建立层次关系。

您可以使用线程第一条消息的时间标记作为键,根据它对消息进行分组,并使用消息自己的时间标记生成 UI 的顺序。

https://www.pubnub.com/docs/sdks/javascript/api-reference/publish-and-subscribe#methods

这是执行此操作的高级设计:

  • 一条消息发布到具有名称的频道chat_11223344(频道名称chat_用作所有聊天频道的前缀和生成的 id - 在此处保持简短,但您可以为此使用 uuid 生成器)。该发布返回一个发布时间令牌,如下所示:16183330926487763
  • 使用PN Objects,您可以设置频道的显示名称和描述。
  • 在您的聊天 UI 中,您允许一个人在该消息上创建一个线程。消息被发布到名为 的通道chat_11223344.16183330926487763 ,使用顶级消息的发布时间标记作为“子通道”名称。
  • 因此,您可以轻松识别线程化的顶级消息,您可以在发布第一个“线程化”消息时向该消息添加MessageAction 。您可能还想添加自定义通道元数据(同样是 PN 对象)以添加"isThreaded":true键/值。

推荐阅读