我已经使用 XMPP 在我的 iOS 和 Android 应用程序中集成了聊天系统。我在服务器端使用了 ejabberd 2。聊天系统工作正常。我想使用 APNS 和 GCM 在我的聊天中集成推送通知。如何在每条聊天消息中发送推送通知?ejabberd 2 有任何 API 或扩展可用于实现此功能吗?
帮助是非常可观的,
我已经使用 XMPP 在我的 iOS 和 Android 应用程序中集成了聊天系统。我在服务器端使用了 ejabberd 2。聊天系统工作正常。我想使用 APNS 和 GCM 在我的聊天中集成推送通知。如何在每条聊天消息中发送推送通知?ejabberd 2 有任何 API 或扩展可用于实现此功能吗?
帮助是非常可观的,
请使用下面的博客,它非常简单实用,对我来说很好用。
http://symmetricinfinity.com/2013/01/23/ios-push-notifications-from-ejabberd.html
AFAIK 没有提供 GCM 或 APN 接口的公共 ejabberd 模块。
我建议您使用ejabberd_hook实现自定义模块。您可以在此处查看 ejabberd 内部模块和存在挂钩的示例。
如果您想将消息转发给离线用户,我建议offline_message_hook
同时对消息进行通用过滤,filter_packet({From, To, Packet})
并检查数据包类型(请参阅此stackoverflow 问题)。
了解收件人后,您可以从数据库中检索设备令牌/注册 ID 并使用一些 erlang 代码转发消息。
对于 APN,请查看一些解释其工作原理的简单代码或此 erlang ex_apns。如果你想了解更多关于 APN 的信息,或者你想要一个 APN 的模拟服务器,你可以阅读这篇博文。
对于 GCM 的示例,您可以使用 @Lucas 提供的示例链接。