openfire offile通知/触发器

时间:2016-06-06 09:51:35

标签: php sockets openfire

我在iOs和php网站上使用openfire进行聊天应用。一切都很好。

当对手用户离线并且您正在向该用户发送消息时(对于离线消息的简短推送通知),我还实施了推送通知。我已经实现了以上内容:Openfire offline notification through PHP

现在,客户要求我再实施一项功能,其中包括:

  • 任何用户离线时向管理员发送邮件。

但现在没有任何可用于跟踪用户状态的挂钩。那么如何实现呢?

我尝试了什么

我还试过一个技巧,我向所有用户发送广播消息,如果有任何用户离线,那么我的 CallbackOnOffline 插件将会调用,但这里的没有向远程发送广播消息用户

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Presence.Type.unavailable

“拦截”Presence数据包

Openfire有一个ConnectionCloseListener(在SessionManager类中),可以激活Presence不可用。

如果您阅读了课程评论,则说明

  // Send an unavailable presence to the user's subscribers
  // Note: This gives us a chance to send an unavailable presence to the
  // entities that the user sent directed presences

所以可能有一个管理用户可以自动订阅所有用户,重新启用在线状态,这样你就可以直接截取该用户的数据包来发送你的电子邮件。 / p>

使用相反的逻辑,您将能够强制直接存在您控制的内容并拦截此实体不可用的存在