一个脚本im机器人与python的xmpppy,如何检测网络故障?

时间:2011-09-24 03:08:58

标签: python xmpp bots xmpppy

我正在使用xmpppy libary编写一个XMPP IM机器人。

我想对断开连接采取行动,但我不知道如何检测断开连接。如果您的Jabber服务器崩溃或者您丢失了互联网连接,可能会发生这种情况。

我找到了回调函数RegisterDisconnectHandler(self, DisconnectHandler),但它不适用于网络故障,它只在我明确调用方法“disconnect”时才有效。

如何检测网络故障或服务器崩溃?

1 个答案:

答案 0 :(得分:0)

您是否在网络出现故障后尝试等待30 分钟?根据您的网络堆栈设置,可能需要很长时间才能检测到。但是,如果您没有定期发送套接字,则可能从不检测到中断。这就是为什么许多XMPP堆栈使用如下算法定期发送单个空格字符的原因:

  1. 将计时器设置为N
  2. 发送节时,将计时器重置为N
  3. 当计时器触发时,发送一个空格。