Quickblox 消息获取最后 n 条消息

Posted

技术标签:

【中文标题】Quickblox 消息获取最后 n 条消息【英文标题】:Quickblox messaging fetch last n messages 【发布时间】:2014-11-17 20:22:37 【问题描述】:

我在我的应用程序中使用 Quickblox ios SDK 进行即时消息传递。当用户登录时,我检索消息列表。我正在尝试检索最后 N 条消息。我使用本文档中指定的扩展请求参数: http://quickblox.com/developers/SimpleSample-chat_users-ios#List_chat_messages

此调用检索前 100 条消息,而不是最近的消息。 我还检查了从这里发送的参数列表: http://quickblox.com/developers/Chat#Retrieve_messages

使用限制和排序参数的组合仍然不能得到想要的结果。

    如何请求检索对话框中的最后 N 条消息? 如何加载最后但 N 条消息?例如,最近 100 条消息之前的最后 100 条消息。类似于限制 100,但跳过 100 条,相反。

【问题讨论】:

【参考方案1】:

//试试这个:

NSMutableDictionary *extendedRequest = [NSMutableDictionary new];
NSDate *now = [NSDate date];
extendedRequest[@"date_sent[lte]"]= @([now timeIntervalSince1970]);
extendedRequest[@"sort_desc"]= @"date_sent";

//get the most recent 50 messages
extendedRequest[@"limit"] = @(50);
[QBChat messagesWithDialogID:self.dialog.ID extendedRequest:extendedRequest delegate:self];

【讨论】:

@IgorKhomenko 我试过这样。最后几条消息在历史记录列表中被跳过。 QBChatDialog chatDialog = new QBChatDialog(privateDialog.getDialogId()); QBMessageGetBuilder messageGetBuilder = new QBMessageGetBuilder(); messageGetBuilder.setLimit(50); messageGetBuilder.sortDesc("date_sent");【参考方案2】:

我在 android 中遇到了同样的问题。

解决如下。 您所要做的就是在 requestbuilder sortDesc("date_sent"); 中添加一个参数;

QBDialog dlg=new QBDialog(str_dialogid);
    QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder();
    requestBuilder.setLimit(10);
    requestBuilder.sortDesc("date_sent");

【讨论】:

我使用了相同的.. 它跳过了最后十条消息。

以上是关于Quickblox 消息获取最后 n 条消息的主要内容,如果未能解决你的问题,请参考以下文章

从每个对话中获取最后一条消息

QuickBlox REST 是不是具有获取消息总数的 API?

当用户在 quickblox 的 ios 中离线时获取消息

未读消息总数 quickblox

从 Quickblox 对话框中删除特定聊天消息

如何获取特定频道 discordjs 的最后一条消息