1

JavaSmackAPIを使用してアプリケーションを開発しています。PacketCollector.javaクラスのnextResult()メソッドを使用して、次の着信メッセージを受信します。(ドキュメントによると、このメソッドは入力があるまでブロックされます。)

http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/PacketCollector.html

接続が突然切断された場合(たとえば、ネットワークの切断など)、どうすれば例外を把握できるか、またはどのように例外をキャッチできるかについて質問があります。

4

1 に答える 1

1

呼び出しはnextResult()、フィルターに一致するパケットが到着するまで待機します。ソースを見ると、同じ接続インスタンスを使用している限り、切断して再接続した後も待機すると思います。

実際に使用するのではなく、代わりnextResult()に使用nextResult(long)してください。何らかの理由で接続が切断され、適切なタイムアウト値の代わりにnextResult()使用する正当な理由がない場合でも、例外はスローされません。nextResult()nextResult(long)

于 2012-09-01T23:11:47.950 に答える