如何使用 smack 和 openfire 获取 IOS 中每个聊天会话的最后一条消息?
Posted
技术标签:
【中文标题】如何使用 smack 和 openfire 获取 IOS 中每个聊天会话的最后一条消息?【英文标题】:How to get last message of every chat session in IOS using smack with openfire? 【发布时间】:2016-08-18 07:36:02 【问题描述】:我已经在我的 ios 应用程序中实现了聊天,它的连接和聊天成功,我还得到了一个用户的所有聊天历史一对一聊天,现在我想实现聊天历史屏幕,其中只显示聊天会话一个用户与其他用户(如果已创建)。
-
openfire 有没有办法发送该列表?
有什么方法可以让我获得每次对话的最后一条消息?
我试图找到一个合适的解决方案,但没有运气,然后尝试了以下方法,
-
我尝试了一些方法,但其中一种方法会发送所有聊天消息,我需要在应用程序中自行处理该列表然后使用,但这样会丢失大量数据。
另一种方法是点击每个用户获取他们的完整聊天记录,获取最后一条消息并显示,但这也没有那么有效。
还有另一种方法可以做到这一点,它可以创建一个数组,不断更新他的属性,如用户 ID、时间和最后一条消息。一旦用户更新其聊天,它将保持更新,然后使用它来填充所有聊天历史记录屏幕。
任何人都可以建议是否有更好的方法来实现这一点?
提前致谢。
【问题讨论】:
上述要求是自定义的,Openfire 不支持。所以你在客户端留下了一些逻辑。 【参考方案1】:您需要在 Core Data 上保存每个用户的聊天历史记录,然后从 Core Data 显示每个用户的最后一条消息。 如果您正在使用“Robbiehanson”(https://github.com/robbiehanson/XMPPFramework) 框架,那么它已经在这样做了。
【讨论】:
请您告诉我如何使用 XEP-0313 获取与特定用户的聊天记录以上是关于如何使用 smack 和 openfire 获取 IOS 中每个聊天会话的最后一条消息?的主要内容,如果未能解决你的问题,请参考以下文章
使用 smack 从消息存档 openfire 中获取最新对话
Openfire:在android上使用smack向特定人广播消息