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

标签 ios push-notification xmpp xmppframework instant-messaging

我对 XMPP 完全陌生,并且阅读过各种有关 XMPP 的网站。现在我正在考虑哪个服务器和库适合做 iOS IM,我感到很困惑。

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

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

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

  2. 我还检查了聊天状态显示(例如,用户 A 正在打字...等),人们说这是由 XEP-00184 完成的,我是否可以使用此协议(protocol)实现推送通知XEP-0079?

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

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

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

再次感谢!

最佳答案

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

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

关于iOS + XMPP - 我可以在 iOS 中实现推送通知 XMPPFramework 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097610/

相关文章:

Android 文件传输无法通过 XMPP 和 OpenFire 工作

ios - 在 Swift 中显示以前创建的 View Controller

android - phonegap(cordova)中的存储卡文件和文件夹列表

ios - 使用 CNContacts (Swift) 实现搜索 Controller 时出现问题

ios - 推送通知无法获取设备 token

ios - 如何防止 ios 上的自动初始化 firebase?

xmpp - 构建 Openfire XMPP 外部组件 - 使用 Tinder 还是 Whack?

ios - GMSMapView sdk中是否有显示当前位置的默认按钮

android - GCM - GCMBroadcastReceiver 没有被调用

java - roster.getPresence 给出不可用