【问题标题】:MUCLight Offline message fetch XMPPMUCLight 离线消息获取 XMPP
【发布时间】:2017-03-21 02:05:23
【问题描述】:

有没有人在 MongooseIM 聊天服务器中为 XMPP 实现了 MUC Light 测试版。

如何获取获取以下消息时

1) 用户在被添加为组的参与者时处于离线状态。 2) 离线会员用户,在 muc light 群中获取消息。

我已经实现mod_zero推送触发离线消息给用户,还能够将消息存储在我的聊天服务器MySQL数据库的mam_muc_message表中。但是客户端将如何获取这些消息并收到所有消息的通知。

非常感谢任何指导。

http://mongooseim.readthedocs.io/en/latest/open-extensions/muc_light/

【问题讨论】:

  • 如果消息正确存储在mam_muc_message中,则使用section 4. Querying an archive of Message Archive Management XEP中描述的标准协议。
  • 你的意思是它与xmpp.org/extensions/xep-0045.html#enter-history第7.12.4节一样
  • 你能举个sn-p的例子吗? muc light会处理它吗???
  • 这与 XEP-0045 完全不同。 MUC Light 不支持 XEP-0045 描述的房间历史记录。请改用消息存档管理 - 那里的示例应该可以正常工作。
  • 查看 mam_muc_message 表并选择其中一个有消息的用户。以这些用户之一的身份连接并将示例 1.sn-p 从链接发送到我在上面的评论中粘贴的消息存档管理。您应该会收到(部分)您可以在 SQL 数据库表中看到的消息。

标签: ios erlang xmppframework multiuserchat mongoose-im


【解决方案1】:

感谢您的建议,这里的 cmets 是我如何在小的限制下进行管理的。

  1. 当用户离线而他被其他人添加到某个组时,他不会像 muc-light 建议的那样得到这个创建组节。
  2. 他一上线,至少得有人发群消息
  3. 当他收到此消息时,我获取组配置并首先创建一个新组,并将此消息保持为待处理。
  4. 创建组后,我将此待处理消息链接到该组。
  5. 然后我将 MUC light MAM 消息称为6.2 XEP-0313 Message Archive Management 中给出的消息
  6. 然后我获取所有以前的消息并添加到我的数据库中并显示在屏幕上。

唯一的限制是在他上线后他不能去服务器并询问所有 muc-light 消息,如果我要求传统的 MAM 进程为muclight.****.com 组 ID,所以我使用他们要求在上面的链接中获取。

考虑到这一点,希望 MUC Light Beta 能够进一步改进。

【讨论】:

  • ejabberd 配置文件中是否有任何设置可以从数据库中删除 muc 存档消息以在一段时间后清除
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 2015-06-07
  • 1970-01-01
  • 2016-02-28
  • 2017-04-02
  • 2015-04-22
  • 2014-11-13
  • 2016-12-09
相关资源
最近更新 更多