【问题标题】:Issue in receiving offline messages with QuickBlox使用 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 对象进行了更新。

怎么了?

【问题讨论】:

    标签: ios quickblox


    【解决方案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

    【讨论】:

    【解决方案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(默认情况下),因此我们不需要显式设置它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2022-01-09
      • 1970-01-01
      • 2016-03-13
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多