我正在使用以下代码连接到xmpp服务器(python + xmppy):
c = xmpp.Client("localhost", debug=[])
c.connect(("127.0.0.1", 5222))
c.auth("test","test")
c.sendInitPresence()
c.send(xmpp.Presence(to="admin@localhost", typ='subscribe'))
time.sleep(1000)
这很好用,管理员用户获得状态更新,在联系人中“测试”用户显示为在线状态。如果我在这个脚本上按ctrl + c(当它在最后睡觉时)会出现问题,所以它终止了。问题是管理员用户没有从该脚本获得状态更新。
我还应该提到admin用户自动接受订阅请求。
我的问题是:管理员用户如何检测到测试用户是否脱机。并且更改上面的脚本不是一个选项,因为任何人都可以写这个并在我的xmpp服务器上构建一个程序。
欢迎管理员未收到状态更新或如何检测用户“测试”下线的任何想法。
由于
答案 0 :(得分:1)
检测到端点在没有特定状态更新的情况下脱机通常由服务器处理,例如。检测到端点正在通信的套接字已经关闭。
如果您只能控制客户端代码,则可以偶尔从管理客户端向其所有订阅的端点发送presence probes。