【问题标题】:pubnub get history from multiple channelspubnub 从多个频道获取历史记录
【发布时间】:2019-10-30 13:23:29
【问题描述】:

我正在使用 pubnub 进行聊天,并使用 userid 作为通道来发送消息,但是当我想检索两个用户之间的对话时,我需要从两个通道中获取数据,我该怎么做?

我在两个渠道上都有数据,例如“userAid”和“userBid”,但如果我查询

this.pubnub.history(
            { channel: ['userAid,'userBid'], reverse: true, count: 15 },
            (status, res) => {
            });```
it does not return any result  , if i query with only one channel it works

【问题讨论】:

    标签: react-native notifications chat pubnub


    【解决方案1】:

    History SDK 调用通常用于从单个渠道获取历史记录。如果您需要从多个渠道获取历史记录,则需要使用 Batch History 方法。

    详情请参阅https://www.pubnub.com/docs/react-native-javascript/api-reference-storage-and-playback#batch-history

    示例调用可能如下所示,但上面的链接提供了所有可以设置的参数的列表。请注意,fetchMessages 方法也可用于从单个频道获取历史记录。

    pubnub.fetchMessages(
        { 
            channels: ['ch1', 'ch2', 'ch3'], 
            start: "15343325214676133",
            end: "15343325004275466",
            count: 25 
        }, 
        (status, response) => {
            // handle response
        }
    );
    

    【讨论】:

    • 获取消息允许添加多个通道,但是在从通道获取消息时它允许一个一个而不是同时,所以我们如何使用相同的方法来做到这一点。
    • @AshishJain 它确实在一个响应中返回来自所有渠道的消息。检查pubnub.com/docs/react-native-javascript/… 以了解响应的外观。
    • 是的,我们可以通过多个渠道,但我正在检查这个pubnub.com/docs/android-java/api-reference-storage-and-playback,他们在其中为一个渠道添加了条件,例如 for (PNFetchMessageItem messageItem : channels.get("my_channel")) {} 那么如何我们可以在单个响应中检索其他渠道响应吗?
    【解决方案2】:

    似乎历史只能从一个频道获取消息。

    试试这个:

    pubnub.fetchMessages({
      channels: ['ch1', 'ch2', 'ch3'],
      start: '15343325214676133',
      end: '15343325004275466',
      count: 15,
    }, (status, response) => {
      // handle status, response
    });
    

    Pubnub 获取历史记录的文档: https://www.pubnub.com/developers/chat-resource-center/docs/reference/message-history

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      相关资源
      最近更新 更多