iOS + XMPP - 我可以在iOS中实现推送通知XMPPFramework吗?

时间:2014-09-29 10:21:13

标签: ios push-notification xmpp xmppframework instant-messaging

我是XMPP的新手,并阅读过有关XMPP的各种网站。现在我正在考虑哪个服务器和库可以用于iOS IM,我感到很困惑。

最初,我发现了一个名为XMPPFramework的库,来自here,这似乎很好,因为它正在积极更新,并且有相关的更多来源使用它。但是当我开始考虑服务器端的选择(主要是ejabberd和Tigase)时,我发现如果我要实现推送通知需要做一些自定义工作,这是IM的常见功能。

在搜索并浏览互联网后,我发现有人建议,为了通过XMPP实现推送通知(用于通知离线的用户),需要协议XEP-0079(here) ,我可以用它实现我的自定义插件。但是,我发现上面说的XMPPFramework不支持XEP-0079。所以问题是:

  1. 这是否意味着如果我选择在我的项目中使用XMPPFramework,我将无法实现推送通知?或者它仍然可行但我在从iOS客户端发送消息时无法直接使用XMPPFramework中的东西?

  2. 我还检查了聊天状态显示(例如用户A正在输入等等),人们说这是由XEP-00184完成的,我是否有可能用这个实现推送通知协议而不是XEP-0079?

  3. 由于我最近才开始阅读有关IM和XMPP的内容,我想上面的问题可能没有意义或甚至不正确,但我真的很困惑,需要任何帮助。我试图找到更多关于如何在服务器端收件人用户离线时实现推送通知,但大多数人只是说需要一个额外的插件,似乎没有任何代码示例,所以我只有一个模糊的图像对此。非常感谢!

    编辑: 据我所知,为了向iOS用户发送推送通知,我将不得不使用APNS。但我不确定是否可以实现目标,即识别发送给离线用户的消息,然后将其转发到xmpp服务器中的自定义插件,这可能涉及协议XEP-0079,而XMPPFramework似乎不支持。

    我也不确定拦截和识别发送给离线用户的消息是如何完成的,因为我无法找到与此类似的代码示例。是否有任何与此相关的项目或网站适合初学者?

    再次感谢!

1 个答案:

答案 0 :(得分:1)

您需要阅读本指南: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html

所有推送消息都来自Apple的服务器。如果要向用户发送推送消息,则服务器需要通过此服务发送消息。