ejabberd和推送通知

问题描述 投票:14回答:4

我已使用XMPP在我的iOS和Android应用程序中集成了聊天系统。我在服务器端使用过ejabberd 2。聊天系统工作正常。我想在使用APNS和GCM的聊天中集成推送通知。如何在每条聊天消息中发送推送通知? ejabberd 2有任何API或扩展可用于实现此功能?

高度重视,

iphone xmpp apple-push-notifications ejabberd google-cloud-messaging
4个回答
13
投票

请使用下面的博客,它非常简单有用,对我来说很好用。

http://symmetricinfinity.com/2013/01/23/ios-push-notifications-from-ejabberd.html


6
投票

没有用于apns或gcm的ejabberd插件。我认为您在这里有两个主要选择:

  1. 使用mod_offline_post模块,它将在给定的URL上发送POST请求。然后,您可以使用任何现有的后端语言来处理apn和gcm(无论如何,我还是将rails用作后端,所以这仅仅是处理它的一种方法)。

  2. 基于mod_offline_post,创建您自己的模块,该模块将发送推送通知而不是POST请求。很少有示例和库实现apns和gcm。即apns为apns4erl,gcm为this code。但是,为此当然知道一些erlang是很好的。


3
投票

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提供的示例链接。


0
投票

用于使用推送通知apn / fcm向客户端发送脱机消息的模块

https://github.com/sumaninster/ejabberd_offline_message

© www.soinside.com 2019 - 2024. All rights reserved.