从PubNub服务器检索最新的10条消息

时间:2014-06-12 21:08:05

标签: ios pubnub

根据最新的PubNub 3.6.2 documentation,我使用以下方法检索频道中发送的最新10条消息:

PNDate *now = [PNDate dateWithDate:[NSDate date]];
[PubNub requestHistoryForChannel:self.currentChannel from:nil to:now limit:10 reverseHistory:YES includingTimeToken:YES withCompletionBlock:^(NSArray *retrivedMessages, PNChannel *channel, PNDate *beginDate, PNDate *endDate, PNError *error) {
...}];

我的问题是,在此频道发送了10条消息后,此方法只会检索第一个 10条消息,而不是最新的10条消息。我以为使用from:nil to:now会一直收到最新消息,并且想知道我是否遗漏了某些内容?

由于

1 个答案:

答案 0 :(得分:3)

daspianist,

您获得前10条消息的原因是您已指定reverseHistory:YES。这具有从最早的消息开始遍历消息历史的效果。

例如,如果我的消息队列是:1,2,3,4,5,6,8,9,10(其中1是最早的消息,10是最新消息)。

[PubNub requestHistoryForChannel:self.currentChannel from:nil to:now limit:3 reverseHistory:YES includingTimeToken:YES withCompletionBlock:^(NSArray *retrivedMessages, PNChannel *channel, PNDate *beginDate, PNDate *endDate, PNError *error) { ...}];

应该返回: [1,2,3]

通过设置reverseHistory:NO,呼叫应该是队列中最新的消息。

所以基于前面的例子:

[PubNub requestHistoryForChannel:self.currentChannel from:nil to:now limit:3 reverseHistory:NO includingTimeToken:YES withCompletionBlock:^(NSArray *retrivedMessages, PNChannel *channel, PNDate *beginDate, PNDate *endDate, PNError *error) { ...}];

应该返回: [8,9,10]