为群组中的离线用户推送XMPP聊天应用程序的通知

时间:2016-04-06 11:40:06

标签: android ios xmpp openfire xmppframework

大家.... !!

问候.. !!

我正在开发基于XMPP的聊天应用。我使用过Robbie Hanson的https://github.com/robbiehanson/XMPPFramework

的XMPPFramework

我使用 OpenFire 作为XMPP服务器

我在用户离线时遇到群聊的推送通知问题。

目前,当用户离线时,我可以获得一对一聊天的推送通知。 (为此我创建了一个PHP WebService,它每隔60秒从一个离线表中获取信息)

但由于没有离线消息表进行群聊。

任何人都可以建议我当用户在群组中离线时,如何将推送通知发送到群组

我需要从Android和iOS Chat App中管理这个

for Android我正在使用

https://github.com/siacs/Conversations

3 个答案:

答案 0 :(得分:0)

最好的例子是Tigase中的AMP实现。它基于MessageAmp插件和AMP组件。 MessageAmp插件拦截消息。如果它检测到用户未登录,则会将消息转发到AMP组件以将其存储在脱机存储中。在您的情况下,您可以拥有自己的Message插件,如果它检测到用户处于离线状态,则可以将消息转发到Push组件(iOS推送或Android推送,SMS推送或其他内容)。 所有负责实际推送通知设备的逻辑都应在该组件中实现。

答案 1 :(得分:0)

尝试检查此MUC - Light并使用mod_zeropush模块修改位以处理来自muc-light的单个和组推送。

它更像是应用程序,虽然您可能无法达到预期的100%结果,但不如传统的XEP-0045复杂。

答案 2 :(得分:0)

查看ejabberd_mod_offline_post

  1. 首先配置会议室必须是会员专用会议室,并在创建后立即将所有用户添加为会员,以便能够获得总数。
  2. 将上述模型添加到ejabberd模型中。
  3. 实施回调服务以处理回调帖子。
  4. 想法是当用户离线时

    • 在一对一的情况下,将引发offline_message_hook
    • 在MUC案例中,将引发muc_filter_message,并且任何非Presence-Available的人都会离线。