【发布时间】:2018-08-29 20:11:31
【问题描述】:
我有 Ejabberd 服务器和移动 iOS/Android 应用程序。
我想构建一个带有 2 个屏幕的简单聊天应用:
- 聊天列表
- 特定聊天消息的屏幕
我对聊天列表实施有疑问。我使用XEP-0313: Message Archive Management 来存储聊天历史记录,它非常适合我的第二个屏幕 - 包含特定聊天消息的屏幕。
但我找不到合适的方式来显示聊天列表
我有一个想法,将所有用户的联系人(名册)+ 组房间合并然后显示,但用户没有与其所有联系人进行有效聊天,所以这不是一个正确的解决方案。
在聊天列表屏幕上显示最后一条消息文本以及每个聊天也很好。 因此,这是所有现代信使中的一个非常标准的功能。
是否可以使用任何 XEP?或者我可以以某种方式使用 Message Archive XEP
这里有一些想法Get last message of each conversation with XEP-0313?,但仍然没有答案
【问题讨论】:
-
你使用本地存储,比如 SQLite 数据库吗?聊天列表和当前聊天有什么区别?是时差还是其他原因?
-
我使用 SQLite,但我希望我的所有设备都可以访问它,因此我所有设备的聊天屏幕上都应该显示相同的数据。
-
@KenanBegić “在聊天列表和当前聊天之间”是什么意思。我们可以随意调用它,它只是所有用户聊天的列表
-
@Rubycon,这是一个很好的问题。您找到答案或解决方法了吗?
-
@AtomicBoolean 我最终构建了一个外部 API 端点来获取所有内容并提供给用户。此端点可以访问 Ejabberd DB