如何从pubnub检索脱机消息?

时间:2014-07-22 13:00:22

标签: pubnub

我正在尝试首次在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将给出完整的消息列表,但是它是否为离线消息的排序

方法是对的吗?

1 个答案:

答案 0 :(得分:1)

通过播放和存储(历史记录API),您可以检索频道的消息历史记录,最长可保留30天。

userAuserB发送邮件,未连接到互联网,或者应用程序在后台时,没有问题,userB将能够检索每封邮件这是在过去30天内发送到他的频道的。 否则,“离线”和“在线”消息之间没有区别。如果邮件已成功发送,您可以使用历史记录API检索它。

您还可以使用移动推送网关进行推送通知,在这种情况下,当应用处于后台状态时,您的用户将收到该消息。

为了获得最佳的用户体验,我正在将这两种内容结合起来,并且在接收消息方面没有任何问题。