我在使用消息 ID 将 iOS 和 Android 设备与其相应的 QBChat 库连接时遇到问题。
Quickblox 的 iOS 库中的消息对象被定义为 QBChatMessage 对象,这在 Quickblox 的 Android 库中不存在(它将它们委托给 SMACK 库中的 Message 类)。
问题是 QBChatMessage 类将消息 ID 管理为整数,而 Message 类将它们管理为字符串。从我的 Android 设备发送的每条消息都有一个 7 个字符的唯一字符串 + 一个数字,其中包含消息在 SMACK 聊天中的位置。当我的 iPhone 收到消息时,它的 ID 是一个数字,其中 SMACK 中的 ID 已尽可能多地解析,如以下通信示例(取自 Android 设备):
SENT <message id="D64u5-4" to="102521-1799@chat.quickblox.com" from="132505-1799@chat.quickblox.com/Smack" type="chat"><body>{"content":{"text":"hello"},"type":1}</body><thread>7J9230</thread></message>
SENT <message id="D64u5-5" to="102521-1799@chat.quickblox.com" from="132505-1799@chat.quickblox.com/Smack" type="chat"><body>{"content":{"text":"yeah"},"type":1}</body><thread>7J9230</thread></message>
SENT <message id="D64u5-6" to="102521-1799@chat.quickblox.com" from="132505-1799@chat.quickblox.com/Smack" type="chat"><body>{"content":{"text":"test"},"type":1}</body><thread>7J9230</thread></message>
RCV <message id="0" from="102521-1799@chat.quickblox.com" type="chat" xmlns="jabber:client" to="132505-1799@chat.quickblox.com"><body>{"content":{"text":"hello"},"type":1}</body></message>
RCV <message id="1" from="102521-1799@chat.quickblox.com" type="chat" xmlns="jabber:client" to="132505-1799@chat.quickblox.com"><body>{"content":{"text":"yeah?"},"type":1}</body></message>
RCV <message id="2" from="102521-1799@chat.quickblox.com" type="chat" xmlns="jabber:client" to="132505-1799@chat.quickblox.com"><body>{"content":{"text":"yeah!"},"type":1}</body></message>
按照数据库存储的顺序,消息的 ID 对我来说很重要。这怎么可能?我应该怎么做才能解决这个问题?
谢谢,亲切的问候!:)