最近、Strophe.js アプリケーションで別の問題が発生しました。ユーザー B とアクティブにチャットしている (<active> などを含む仕様に従って適切な xml を送信している) にもかかわらず、サーバーがユーザー B に私が利用できなくなったことを通知することが起こります。
現時点では、ロジックは次のようになります。
- 接続
- 初期プレゼンススタンザを送信
- 必要に応じてステータス (不在/dnd) を更新する
- 10 秒ごとにサーバーへの ping を開始する
- ユーザーはチャットできるようになりました
サーバーがクラッシュしていないことを確認するために Ping が実行されます。これは広く使用されている (<iq...> を使用する) 手法です。
ユーザーが送信するすべてのメッセージは次のようになります。
<message from="me@server.ltd" to="friend@server.ltd" type="chat" id="randomID" xmlns="jabber:client">
<active xmlns="http://jabber.org/protocol/chatstates" />
<body>Text</body>
</message>
この問題とその解決策を知っていますか?