XMPP 上的群聊推送通知

GroupChat Push Notification on XMPP

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

  1. 发件人将消息发送到 ejabberd
  2. Ejabberd 收到消息并检查收件人是否在线
  3. 如果收件人离线 ejabberd 保存离线消息
  4. mod_interact 当 ejabberd 收到离线消息并将消息传送到我们的网络服务器时工作
  5. Web服务器找到客户端的推送通知信息并发送推送通知

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

谢谢

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

  1. 首先配置房间必须是Member-Only房间,创建后立即将所有用户添加为成员,这样才能得到总数。
  2. 将以上模型添加到ejabberd模型中。
  3. 实施回调服务来处理回调 post。

想法是当用户下线时:

  • 在一对一的情况下,offline_message_hook会提高
  • 在 MUC 情况下,muc_filter_message 将被引发,并且任何不存在的人都处于离线状态。