2016-11-10 121 views
0

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

  1. 发送者将消息发送到ejabberd
  2. ejabberd接收消息并检查receipant在线
  3. 如果receipant离线ejabberd保存离线消息
  4. 当ejabberd收到离线消息mod_interact工程和邮件传递到我们的网络服务器
  5. Web服务器查找有关客户端推送通知信息并发送推送通知

其工作在1对1聊天非常好。但在群聊(MUC)中,mod_interact不起作用,我无法将推送通知发送给组接收者。您是否知道其他解决方案可以解决1对1和群聊中的问题。

感谢

回答

0

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

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

的想法是,当用户脱机:

  • 在一个对一的情况下,offline_message_hook将提高
  • 在MUC情况下,muc_filter_message将提高,任何一个不在场的可用的离线。