XMPP 上的群聊推送通知
Posted
技术标签:
【中文标题】XMPP 上的群聊推送通知【英文标题】:GroupChat Push Notification on XMPP 【发布时间】:2017-03-24 04:31:22 【问题描述】:我们正在 ios 和 android 上开发一个 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 推送通知