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(成员)
谢谢
您所指的帖子主要是关于创建浅层朋友图和状态提要的模式,但您可以很容易地将其用于聊天.
对于聊天,您可以从这里学习模式: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的群聊.
如果您有更多问题,请告诉我......
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |