Doo*_*y P 1 python xmpp ejabberd
我在jabber.domain.com上有一个ejabberd服务器,在presence.domain.com上用python(使用sleekxmpp)编写了一个xmpp组件.
我希望每次客户端将其状态从可用状态更改为不可用状态时,该组件都会收到通知,反之亦然.
客户自己没有任何联系.
目前,我已将我的客户设置为将他们的可用状态节发送到admin@presence.domain.com,并且我确实获得了他们的在线/离线状态通知.但我觉得这不是正确的做法.
我希望客户端不会知道presence.domain.com上的组件,他们只是连接到jabber.domain.com,组件应该以某种方式得到服务器通知客户端存在.
有没有办法做到这一点?我的组件设置是否正确?或者我应该考虑使用xmpp插件/模块/等.
谢谢
小智 5
为此编写自定义ejabberd模块并不困难.它需要在ejabberd中注册到状态更改挂钩,并在每个状态数据包路由上向您的外部组件发送通知.
您的模块可以注册一对钩子'set_presence_hook'和'unset_presence_hook',以便在用户开始/结束会话时得到通知.
如果您需要跟踪其他状态,还有一个钩子'c2s_update_presence'可以触发您的用户发送的任何状态数据包.
不使用自定义模块的其他可能性是使用共享名单.将admin@presence.domain.com添加到所有用户的共享名单中,但在这种情况下,他们会看到此项目反映在他们的名单上.
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |