我已经集成了聊天系统在我的iOS和安卓应用程序使用XMPP。我在服务器端使用了ejabberd2。聊天系统工作正常。我想使用APNS和GCM在我的聊天中集成推送通知。如何在每条聊天消息中发送推送通知?Ejabberd2是否有任何API或扩展可用于实现此功能?
帮助是非常值得感谢的,
发布于 2013-05-22 16:38:59
请使用下面的博客,它是非常简单和有用的,它对我很好。
http://symmetricinfinity.com/2013/01/23/ios-push-notifications-from-ejabberd.html
发布于 2013-05-01 16:40:57
没有针对apns或gcm的ejabberd插件。我认为你有两个主要的选择:
mod_offline_post
模块,它将在给定的url上发送POST
请求。然后你可以使用任何现有的后端语言来处理apns和gcm (我无论如何都使用rails作为后端,所以这只是一个端点来处理它)。mod_offline_post
,创建你自己的模块,它将发送推送通知,而不是POST
请求。实现apns和gcm的例子和库很少。即用于apns的apns4erl和用于gcm的this code。但要做到这一点,了解一些erlang当然是一件好事。发布于 2013-05-02 00:46:04
AFAIK没有提供GCM或APN接口的公共ejabberd模块。
我建议您使用ejabberd_hook实现一个自定义模块。你可以看到一个ejabberd内部模块和状态钩子here的例子。
如果您想将消息转发给离线用户,我建议使用offline_message_hook
,而对于一般的消息过滤,我建议使用filter_packet({From, To, Packet})
并检查数据包类型(请参阅this堆栈溢出问题)。
了解接收者后,您可以从数据库中检索设备令牌/注册id,并使用一些erlang代码转发消息。
对于APN,可以查看一些解释其工作原理的simple code,也可以查看这个erlang ex_apns。如果你想了解更多关于APN的信息,或者如果你想要一个用于APN的模拟服务器,你可以阅读这个博客post。
对于GCM的示例,您可以使用@Lucas提供的示例链接。
https://stackoverflow.com/questions/16189612
复制相似问题