そのため、まだアクティブなデータ接続があるかどうかを知るために、5 分間隔で ping を送信し、サーバーが応答するのを待っています。したがって、基本的には、この ping メソッドのキーとして iq ID を使用しています。ping を送信し、iq ID を保存します。noDataConnection = true と仮定します。ここで、同じ iq ID を持つ pong を受信した場合、接続が有効であると想定するので、noDataConnection = false を設定します。ただし、データ接続がない場合は、noDataConnection = true を設定して ping を送信し続け、何も受信しないため、回復してデータ接続を取得しない限り、true のままになります。
http://xmpp.org/extensions/xep-0199.html#s2cからの抜粋: PING:
<iq from='juliet@capulet.lit/balcony' to='capulet.lit' id='c2s1' type='get'>
<ping xmlns='urn:xmpp:ping'/>
</iq>
ポン:
<iq from='capulet.lit' to='juliet@capulet.lit/balcony' id='c2s1' type='result'/>
これに関する私の唯一の懸念は、ping の結果ではない iq を受信し、アプリケーションが noDataConnection = true であると想定する場合はどうなるかということです。送信されます。受信した iq が ping の結果かどうかを知る方法はありますか?
ありがとう。