【发布时间】:2014-11-23 17:03:39
【问题描述】:
我对 XMPP 完全陌生,并且阅读过各种有关 XMPP 的网站。现在我正在考虑哪个服务器和库可以做一个 iOS IM,我感到很困惑。
最初,我从here 找到了一个名为 XMPPFramework 的库,这看起来不错,因为它正在积极更新,并且关于它的使用有相对更多的来源。但是当我开始考虑选择服务器端(主要是 ejabberd 和 Tigase)时,我发现如果要实现推送通知需要做一些自定义工作,这是 IM 的一个共同特性。
在网上搜索和浏览后,发现有人建议,为了用XMPP实现推送通知(用于通知离线用户),需要XEP-0079(here)协议,即我可以用它实现我的自定义插件。但是,我发现上述 XMPPFramework 不支持 XEP-0079。所以问题是:
这是否意味着如果我选择在我的项目中使用 XMPPFramework,我将无法实现推送通知?或者它仍然可行但我将无法在从 iOS 客户端发送消息时直接使用 XMPPFramework 中的东西?
我还检查了聊天状态显示(例如用户 A 正在键入...等),人们说这是由 XEP-00184 完成的,我是否可以使用此协议实现推送通知XEP-0079 的?
由于我最近才开始阅读有关 IM 和 XMPP 的内容,我想我上面的问题可能没有意义,甚至不正确,但我真的很困惑,需要任何帮助。我试图找到更多关于当收件人用户在服务器端离线时如何实现推送通知的信息,但他们中的大多数人只是说需要一个额外的插件并且似乎没有任何代码示例,所以我对此只有一个模糊的图像.非常感谢!
编辑: 我了解为了向 iOS 用户发送推送通知,我必须使用 APNS。但是我不确定我是否可以实现目标,即识别发送给离线用户的消息,然后将其转发到 xmpp 服务器中的自定义插件,这可能涉及协议 XEP-0079,而 XMPPFramework 似乎不支持。
而且我也不确定我们是如何拦截和识别发送给离线用户的消息的,因为我找不到与此相关的类似代码示例。有没有适合初学者的项目或网站?
再次感谢!
【问题讨论】:
-
alanlo@ 我也有同样的疑问。你能分享你找到的解决方案吗!
标签: ios push-notification xmpp xmppframework instant-messaging