XMPP 上的群聊推送通知

Posted

技术标签:

【中文标题】XMPP 上的群聊推送通知【英文标题】:GroupChat Push Notification on XMPP 【发布时间】:2017-03-24 04:31:22 【问题描述】:

我们正在 iosandroid 上开发一个 xmpp 应用程序。我们使用 ejabberd 作为 xmpp 服务器,我们还使用 mod_interact (https://github.com/adamvduke/mod_interact) 通知我们的网络服务器向客户端发送离线消息推送通知: 流程是这样的:

    发件人将消息发送到 ejabberd Ejabberd 收到消息并检查收件人是否在线 如果收件人离线,ejabberd 会保存离线消息 当 ejabberd 收到离线消息并将消息传递到我们的网络服务器时,mod_interact 起作用 Web 服务器查找客户端的推送通知信息并发送推送通知

它在一对一聊天中效果很好。但是在群聊(MUC)中,mod_interact 不起作用,我无法向群接收者发送推送通知。你知道在一对一和群聊中解决这个问题的任何其他解决方案吗?

谢谢

【问题讨论】:

【参考方案1】:

查看ejabberd_mod_offline_post,它同时支持one2one和MUC。

    首先配置 Room 必须是 Member-Only 房间,并在创建后立即将所有用户添加为成员,这样才能得到总数。 将上述模型添加到 ejabberd 模型中。 实现回调服务来处理回调帖子。

这个想法是当用户下线时:

在一对一的情况下,offline_message_hook 将被引发 在 MUC 情况下,将引发 muc_filter_message,并且任何不存在可用的人都处于脱机状态。

【讨论】:

以上是关于XMPP 上的群聊推送通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTTP 和 XMPP 协议的 GCM/FCM 推送通知

有人使用 XMPP 在 iOS 上实现推送通知吗?

使用 XMPP 的推送通知和 C2MD 路线图

向 ios 发送推送通知以与离线用户聊天,openfire xmpp

Android 推送通知的架构

配置 Openfire 服务器以支持 GCM 推送通知