Pubnub频道组历史记录

Vai*_*h N 4 java android pubnub

我已经通过了pubnub频道组设计模式,http: //scalabl3.github.io/pubnub-design-patterns/2015/08/11/Advanced-Channel-Groups-Friend-Lists-Status-Feed-And-Presence . HTML

但仍然存在一些实施群聊的疑虑

考虑我有GP1,GP2组

GP1 - A,B,C(成员)GP2 - A,D,E(成员)

  • 这里我需要订阅2组,如果2我需要在两者中添加A吗?或者通过过滤使用ABCDE的1组
  • 如何通过单个api调用获取所有组历史记录(假设GP1有超过100个朋友)

谢谢

sca*_*bl3 9

您所指的帖子主要是关于创建浅层朋友图和状态提要的模式,但您可以很容易地将其用于聊天.

对于聊天,您可以从这里学习模式:http://scalabl3.github.io/pubnub-design-patterns/2015/03/05/Inbound-Channel-Pattern.html

如果小组聊天有小组,那么入站模式效果很好,我说小组聊天中的人数少于5-7人.它对大型团体适用,例如.50人,因为您为每个发送的聊天消息发布到每个用户的入站频道.对于较大的群组,群聊本身应该拥有自己的频道.你是对的,如果你参加了大量的群聊,你将不得不在每个聊天中检索历史,每一个都是一个API调用.如果聊天更多是1-1或小组,那么入站模式可以更简单地获取历史记录.

合并这两种模式意味着你将使用cg-user- [uid] -status-feed(也可能想要称之为不同的东西,命名约定当然可以是你自己的,也许是cg-user- [uid] -chats) ,但放入入站频道+任何较大的群组聊天频道.

历史记录仍然基于每个频道,因此您可以获得Inbound的历史记录,该历史记录将用于任何1-1或小组聊天,然后在任何用于较大群组聊天的频道上获取历史记录.

更具体地说,你的问题:

GP1和GP2都是小组,因此通过入站通道向每个用户发送任何聊天消息比较简单,在每个组中,在JSON有效负载中,您还将包含以下元数据:

Message to GP1 from User A
{ 
   group_chat: "GP1",
   from: "A",
   to: "A,B,C",
   timestamp: 1443112089,
   message: "hey guys, good morning"
}

Message to GP2 from User E
{ 
   group_chat: "GP2",
   from: "E",
   to: "A,D,E",
   timestamp: 1443112192,
   message: "I'm going afk for a bit, time for the gym"
}
Run Code Online (Sandbox Code Playgroud)

此消息将发布3次,每个用户的入站通道一个[GP1:A,B,C,GP2:A,D,E].使用该元数据,您可以获得所需的信息,以便在UI中确保将收到的消息放入正确的UI容器中,即GP1和GP2的群聊.

如果您有更多问题,请告诉我......