我正在尝试首次在javascript中使用pubnub api创建聊天应用程序
下面介绍的是我为实现聊天而创建的逻辑
用户A订阅了频道“talktoA”和“ourPublicChannel” 用户B订阅了频道“talktoB”和“ourPublicChannel”
当用户A想要与用户B通话时,用户A会向消息“talktoB”发送消息 当用户B订阅频道“talktoB”时,用户B将收到该消息,反之亦然
当用户想要发送广播消息时,用户需要将消息发送到频道“ourPublicChannel”
以下是每项操作的代码
1. **Establish a Connection**
var pubnub = PUBNUB.init({
publish_key: 'pub-mypublishkey',
subscribe_key: 'sub-mysubkey',
uuid : me
});
2. **Publish Message to a Channel**
//Sending a private message
pubnub.publish({
channel: ['privatechannelofB'],
message: {
text: “Test Message to userB ”,
username: me
}
});
//Sending a broadcast message
pubnub.publish({
channel: ['publicchannel'],
message: {
text: “A Broadcast Message to all user”,
username: me
}
});
3. **Subscribe /Receive to a channel**
pubnub.subscribe({
channel: ['myprivatechannel','mypublichannel']
message: function(data) {
alert(data)//Test Message
}
});
4. **History of message**
pubnub.history({
channel: channelname,
callback: function(m){console.log(m)},
});
我需要确认以下内容
如何检索离线消息?如果用户A向用户B发送消息而用户B离线,则需要显示离线 消息? 历史api将给出完整的消息列表,但是它是否为离线消息的排序
方法是对的吗?
答案 0 :(得分:1)
通过播放和存储(历史记录API),您可以检索频道的消息历史记录,最长可保留30天。
当userA
向userB
发送邮件,未连接到互联网,或者应用程序在后台时,没有问题,userB
将能够检索每封邮件这是在过去30天内发送到他的频道的。
否则,“离线”和“在线”消息之间没有区别。如果邮件已成功发送,您可以使用历史记录API检索它。
您还可以使用移动推送网关进行推送通知,在这种情况下,当应用处于后台状态时,您的用户将收到该消息。
为了获得最佳的用户体验,我正在将这两种内容结合起来,并且在接收消息方面没有任何问题。