0

xmpppy ライブラリを使用して XMPP IM ロボットを作成しています。

切断に対処したいのですが、切断を検出する方法がわかりません。これは、Jabber サーバーがクラッシュした場合、またはインターネット接続が失われた場合に発生する可能性があります。

コールバックが見つかりましたRegisterDisconnectHandler(self, DisconnectHandler)が、ネットワーク障害では機能しませんでした。メソッド「切断」を明示的に呼び出した場合にのみ機能します。

ネットワーク障害やサーバー クラッシュを検出するにはどうすればよいですか?

4

1 に答える 1

0

ネットワークに障害が発生してから30待ってみましたか? ネットワーク スタックの設定によっては、検出にこれほど時間がかかる場合があります。ただし、ソケットで定期的に送信していない場合は、停止を検出できない可能性があります。これが、次のようなアルゴリズムを使用して、多くの XMPP スタックが単一のスペース文字を定期的に送信する理由です。

  1. タイマーをN秒に設定
  2. スタンザの送信時に、タイマーをリセットしてN
  3. タイマーが起動したら、スペースを送信します。
于 2011-09-26T17:10:39.387 に答える