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