【发布时间】:2013-12-09 21:22:47
【问题描述】:
使用 Quickblox 构建类似 whatsapp 的聊天功能的更有效方法是什么,尤其是这些行为:
- 接收来自用户的新消息的可视/可听通知 B 在与用户 A 聊天时
- 用未读消息的数量更新计数器
- 不在时收到新消息的可见/可听通知 聊天(例如,正在进行的对话列表)
- 在聊天时,接收对方的消息并且不显示 这些相同消息的远程通知
到目前为止,我倾向于这样的解决方案:
- 使用聊天室进行一对一聊天以实现历史记录功能
- 在自定义对象中注册每个 1:1 聊天室 使用包含 dateOfLastReceivedMessage 的元信息创建 字段(每位用户额外调用一次 QB)
- 每次调用chatRoomDidReceiveMessage,更新日期 dateOfLastReceivedMessage 字段(对 QB 的 2 次额外调用;搜索 记录并更新)
- 每发送一条消息,同时发送一个推送通知(1 个额外的呼叫 到QB)
- 每次调用 didReceivedRemoteNotification 时,比较日期
自定义对象中带有 dateOfLastReceivedMessage 的消息 (a)
(b) (1 次额外呼叫 QB):
如果 a > b -> 通知是新消息/未读消息:增加新消息的计数器并显示视觉线索/播放声音。
如果 a > b -> 通知不是新消息/未读消息:什么也不做。
对于熟悉 Quickblox 的人来说,这看起来是正确的还是有更好的方法来实现相同的行为?
【问题讨论】:
标签: quickblox