iOS 和 Android 之间的 Quickblox 聊天

Quickblox chat between iOS and Android

我在我的 iOS 应用程序上实现了 Quickblox 聊天,另一个开发人员在 Android 应用程序上实现了相同的应用程序。

当我在 iOS 设备与 iOS 设备通话时,一切正常,消息发送、接收、在我的视图中正常列出。

当Android设备与Android设备之间进行对话时,一切也都正常发生,一切都发生得很完美。

问题是当我们尝试在 iOS 设备和 Android 设备之间通信时。我在我的设备上收到推送,当我进入聊天时,消息并不总是在我第一次进入聊天视图时列出。当我已经在视图中并收到一条消息时,我需要退出并返回,以便消息出现,但它会间歇性出现。

是否需要什么配置,转换,才能正常跨平台聊天?这是一个已知错误?

谢谢你!

我无法理解你的问题。您需要什么类型的聊天(私人或群组)?

跨平台聊天在 Q-municate 应用程序上正常工作。 试一试(Android 边):https://github.com/QuickBlox/q-municate-android

私聊逻辑:

https://github.com/QuickBlox/q-municate-android/blob/master/Q-municate_core/src/main/java/com/quickblox/q_municate_core/qb/helpers/QBPrivateChatHelper.java

群聊逻辑:

https://github.com/QuickBlox/q-municate-android/blob/master/Q-municate_core/src/main/java/com/quickblox/q_municate_core/qb/helpers/QBMultiChatHelper.java

我终于弄明白我的代码中发生了什么。

在 iOS 中,我的 iPhone 设置 > 通用 > 日期和时间 > 时区 - 自动关闭。我的时钟早了2分钟,然后在发送带有对话请求的列表消息时,我使用了[now timeIntervalSince1970],但我没有收到所有消息,所以我不得不等待2分钟才能再次进入聊天,然后列出所有消息。自动设置日期、时间和时区,一切正常。

Objective-C请求:

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

//get the most recent 100 messages
extendedRequest[@"limit"] = @(100);

[QBChat messagesWithDialogID:self.dialog.ID extendedRequest:extendedRequest delegate:self];

在 Java 中,我们只有在以下情况下才需要评论:

if (messageHistory == null || !messages.get(messages.size() - 1).getId()
.equals(messageHistory.get(messageHistory.size() - 1).getId())) {
  //stuff here
}

现在,一切正常!谢谢你的回答。