使用 QuickBlox 接收离线消息时出现问题

Posted

技术标签:

【中文标题】使用 QuickBlox 接收离线消息时出现问题【英文标题】:Issue in receiving offline messages with QuickBlox 【发布时间】:2015-04-08 09:56:57 【问题描述】:

我正在开发一款支持通过 QuickBlox ios SDK 进行私人聊天的应用。一切正常,除了这个场景,假设我们有两个用户,用户 A 和用户 B。如果他们成功登录到QBChat,两者都可以接收消息。现在 UserB 从应用程序转到后台(我已明确将他从聊天中注销)。在这里,UserA 发送一条消息“您离线!是的,您将永远不会收到此消息,因为 QuickBlox 中可能存在错误。”再次,UserB 回到应用程序(我会让他再次登录 QBChat),但奇怪的是他不会收到该消息,但它在 QuickBlox 页面的应用程序仪表板上。同样,它也将该消息显示为 lastMessageTextQBChatDialog 对象。现在真正的恐怖场景来了,UserB再次进入后台,如果UserA发送A,B,C,D,E之类的消息。当他回到应用程序时,UserB只会收到B,C,D, E. 而不是队列中第一条消息的 A。是的,它也在应用程序仪表板上,并且还针对QBChatDialog 对象进行了更新。

怎么了?

【问题讨论】:

【参考方案1】:

您需要添加自定义参数

QBChatMessage *message = [QBChatMessage message];
...
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"save_to_history"] = @YES;
[message setCustomParameters:params];

http://quickblox.com/developers/SimpleSample-chat_users-ios#Chat_history

【讨论】:

建议您将 Quickblox SDK 更新到最新版本quickblox.com/developers/IOS#Download_iOS_SDK 我的聊天示例中没有这个错误,它按预期工作。你能给我你的示例项目吗? 我用这个项目测试QBChat quickblox.com/developers/SimpleSample-chat_users-ios 之前没遇到过这个问题【参考方案2】:

这仍然是一个问题,但我可以通过设置属性来解决它。

一旦您请求登录QBChat,设置[QBSettings useTLSForChat:YES];

然而,这个问题的主要原因是当用户 A 将要下线时,同时用户 B 将发送消息 M1、M2、M3 ......那么,A 只会得到 M2 和 M3......但是如果用户 B 将在用户 A 从QBChat 注销几秒钟后向他发送消息,然后 A 将收到所有三个消息。

更新:

从 Quickblox iOS SDK 2.3 开始,他们为 [QBSettings useTLSForChat:YES]; 设置了 YES(默认情况下),因此我们不需要显式设置它。

【讨论】:

以上是关于使用 QuickBlox 接收离线消息时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

用户无法在 Android Quickblox 聊天应用中接收离线消息

如何在 QuickBlox 的离线消息中启用内容可用键?

Quickblox 不间断地发送推送消息

发送消息时出现空点异常

登录时出现quickblox错误,android

quickblox 接受视频聊天通话问题