2

XMPP 仕様では、クライアントは XMPP サーバーへの接続時にプレゼンスをブロードキャストする必要があると規定されています。Strophe には、XMPP サーバーに「接続」するための 2 つの方法があります。接続と接続です。Connect は完全な認証を行い、attach は既存の接続に再接続するためのものです。アタッチを使用する場合、クライアントはプレゼンスをサーバーにブロードキャストする必要がありますか?

私のテストでは、アタッチ時にプレゼンスをブロードキャストしない場合、クライアントは他のユーザーからメッセージ (プレゼンス、メッセージ、またはその他) を受信しないように見えます。サーバ。プレゼンス ブロードキャストがなければ、ユーザーが接続されていることをサーバーが認識していないかのようです。

これは私が自分の質問に答えたかのように思えますが、おそらくサーバーにバグがあるのでしょうか、それとも何か間違ったことをしているのでしょうか、それともこれは予想される動作でしょうか?

4

1 に答える 1

2

どこかにバグがあります - アタッチは文字通りアタッチです - 元のセッションを継続しています。サーバーはそれが起こったことさえ知りません!

注意すべきこと - 古いコードをまだ開いていて、同じセッションを使用して複数のものがある場合、説明したようなものになってしまう可能性があります。

それでも問題が解決しない場合は、いくつかのコード、または少なくとも接続されたセッションのログ (たとえば、サーバーからの切断 - どのようなエラーが発生するかなど) を確認すると役立つ場合があります。

于 2012-05-19T11:18:55.407 に答える