XMPP上的GroupChat推送通知

我们正在IOS和Android上开发一个xmpp应用程序。 我们使用ejabberd作为xmpp服务器,我们也使用mod_interact( https://github.com/adamvduke/mod_interact )通知我们的web服务器向客户端发送推送通知,以获取他们的离线消息:Flow是这样的:

  1. 发件人将消息发送给ejabberd
  2. Ejabberd收到消息并检查收款人是否在线
  3. 如果收款人离线,ejabberd保存离线消息
  4. mod_interact在ejabberd接收到离线消息并将消息传递给我们的Web服务器时起作用
  5. Web服务器查找有关客户端的推送通知信息并发送推送通知

它的工作很好,1对1聊天。 但在群聊(MUC)mod_interact不工作,我不能发送推送通知组收件人。 你知道任何其他的解决scheme,以解决这个问题,1对1和群聊。

谢谢

看看ejabberd_mod_offline_post ,它支持one2one和MUC。

  1. 首先configuration房间必须是仅限会员的房间,并在创build后立即添加所有用户作为成员,以便能够获得总计。
  2. 将以上模型添加到ejabberd模型中。
  3. 实现callback服务来处理callbackpost。

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

  • 在一对一的情况下,将会引发offline_message_hook
  • 在MUC的情况下,会产生muc_filter_message,任何一个非Presence-Available离线。