iOS客户端的xmpp同步机制

时间:2014-04-02 04:52:28

标签: ios iphone xmpp xmppframework

我一直在使用iOS客户端https://github.com/robbiehanson/XMPPFramework
在客户端成功安装ejabberd并在服务器上启用存档模式,能够发送和接收消息。

我的问题是如何获取旧邮件并同步到我的本地核心数据。我已经阅读了框架支持,它部分支持XEP-0136。

我将能够从服务器制作任何自定义API以获取消息并在本地同步。 但我没有得到任何常见的消息ID,因此我会同步。

如果有人知道同步。请告诉我。

2 个答案:

答案 0 :(得分:0)

嗨我已经在(http://xmpp.org/xmpp-protocols/xmpp-extensions/)教程的xmpp中做了很多事情,你可以从bellow github链接获得示例,你可以从中得到很多帮助

(演示链接:) https://github.com/sesharim/ios-jabber-client

https://github.com/funkyboy/Building-a-Jabber-client-for-iOS

(xmmp项目演示链接:)

https://github.com/chrisballinger/ChatSecure-iOS

我希望它能帮助你...

您可以从上面的演示程序中获取如何获取旧消息和用户列表以及其他详细信息。

答案 1 :(得分:0)

仔细阅读XEP-0136 - 介绍如何检索现有档案。 实际上,XMPPFramework已经实现了存储所有普通传入消息 - 您只需要使用XMPPMessageArchiving初始化XMPPMessageArchivingCoreDataStorage并激活XMPPStream上的模块。然后,您可以在[XMPPMessageArchiving mainThreadManagedObjectContext]上执行核心数据提取请求。如果要检索以前存档的消息,您应该稍微扩展一下XMPPFramework:

  • 发送<list ... /> query,可选择限制Result Set Management个参数(XMPPFramework也支持)
  • 处理结果(通过用户jid和时间戳为您提供存档的集合)并通过<retrieve ... />查询询问感兴趣的集合
  • 处理结果并发送[XMPPMessageArchiving archiveMessage:]结果集中的每条消息,XMPPFramework将完成剩余的工作 - 插入核心数据存储 - 为您服务。