Скрипт im robot с xmpppy из python, как обнаружить сбой сети? - PullRequest
0 голосов
/ 24 сентября 2011

Я использую библиотеку xmpppy для написания робота XMPP IM.

Я хочу действовать на разъединения, но я не знаю, как обнаружить разъединения. Это может произойти в случае сбоя вашего сервера Jabber или если вы потеряли подключение к Интернету.

Я нашел обратный вызов, RegisterDisconnectHandler(self, DisconnectHandler), но он не работал при сбое сети, он работает только тогда, когда я явно вызываю метод «отключить».

Как обнаружить сбой в сети или сбой сервера?

1 Ответ

0 голосов
/ 26 сентября 2011

Пытались ли вы ждать 30 минут после сбоя сети? В зависимости от настроек вашего сетевого стека, это может занять много времени, чтобы обнаружить. Однако, если вы не отправляете периодически сокет, вы можете никогда обнаружить сбой. Вот почему многие стеки XMPP периодически отправляют один пробел, используя такой алгоритм, как:

  1. Установите таймер на N секунд
  2. При отправке строфа сбросьте таймер на N
  3. Когда таймер срабатывает, отправьте пробел.
...