2015-09-24 63 views
1

我有一个支持ejabberd的iOS应用程序,带有一个基于offline_message_hook的小型扩展,它使用APNS(Apple推送通知服务)来发送发送给离线用户的消息的推送通知。尽管这对于群聊来说效果不是那么好,所以我正在寻找一种策略,对于群聊中的离线用户来说也是如此。 MUC是否跟踪属于房间但不在线的用户?我需要以某种方式扩展它们以跟踪此情况吗?我可以从一组在线用户中减去一组受邀用户来获得离线用户吗?我应该用什么钩子来做到这一点?群聊的离线消息钩

对此建议或更好策略的建议非常感谢!

回答

1

多用户聊天的XMPP规范将MUC房间定义为基于状态。按照定义,用户只有在连接时才进入聊天室。当他离线时,用户离开聊天室。这意味着他根本没有收到消息。这解释了为什么他们不存储在离线。

这是XEP-0045的一项功能。未来的一些XMPP规范(又名MUC 2)可能会解决这个问题。目前,消息的MUC +脱机存储在XMPP中是不可能的。

+0

谢谢。你打算什么时候发布MUC 2?你能给我一些指导如何在MUC 1中做到这一点。 –

+0

它在MUC规范中定义的方式是不可能的。您必须创建自己的协议/扩展以符合您的要求。例如,您可以使用在ejabberd MUC模块(muc_filter_packet)中添加的新挂钩。关于MUC2,XSF还没有写出MUC2的规格,所以它只有几个月的时间。 –