問題タブ [stream-management]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
129 参照

xmpp - XMPP XEP-0198 が eJabberd バージョン 2.1.10 で動作しない

ejabberd バージョン 2.1.10 で XEP-0198 またはストリーム管理を有効にする方法はありますか?

0 投票する
2 に答える
990 参照

xmpp - ejabberd でのストリーム管理に関する奇妙なエラー

ejabberd を使用する iOS でインスタント メッセンジャー アプリを構築しています。私は現在、ストリーム管理機能と、特にほとんどの場合に機能するように見える再開をテストしています。ただし、設定を考慮して、次の手順で複製できることを理解できない場合があります: resume_timeout: 30, resend_on_timeout: if_offline

  • 最初にクライアント A とクライアント B が接続され、他のリソースは接続されていません
  • クライアント B がクリーンでない方法でクラッシュまたは切断する
  • クライアント A は大量のメッセージ (10 件以上) を非常に迅速に送信し始めます
  • ejabberd は、メッセージがサーバーに到達したことを確認するために、送信された各メッセージに対して ack を A に送信します。
  • クラッシュから約 20 秒後、B は再接続します。この時点で、A は以前に送信された各メッセージのエラーを受け取ります。

ejabberd 16.01で試しました。

これは 80% の確率で発生します。A から送信されたメッセージは、再接続時に 30 秒以内に B に正しく配信されることがあります。

私の質問は次のとおりです。

  • この動作は正しいですか?メッセージの ack が既に受信されている場合、クライアント A にエラーが返されないことが期待されます。
  • resend_on_timeout設定されてif_offlineおり、他のリソースが接続されていないため、エラーはまったくないと予想されます。私は正しいですか?
0 投票する
1 に答える
210 参照

xmpp - ejabberd: XML スタンザが承認されていません

ejabberd のストリーム管理セッションを再開しているときに、次のログが表示されます。

ここで 1 つのスタンザが認識されませんでした。それは何を意味し、どのように修正するのでしょうか。

ときどき、受信側のクライアントがほとんどの配信確認を受信しないことがありますが、これがこれらのスタンザが失われている理由ですか?

更新: セッション中に承認されなかったスタンザは、接続が再開されたときに再度交換されます。ただし、一部のスタンザが失われる場合があり、その結果、配信確認が送信側のクライアント側に反映されません。

ストリーム管理用に設定されたパラメータ:

タイムアウト時に再開: 120 秒

タイムアウト時に再送信: true

一部のスタンザが失われているために欠落している可能性のある構成はありますか?

0 投票する
0 に答える
932 参照

android - 再接続エラー ストリーム管理 Smack

smack ライブラリ v4.1.5 (Android) と openfire v4.0.1 の XMPP 再接続プロセスに関する非常に大きな問題 (おそらく私のもの?) を発見しました。この方法で、クライアントでストリーム管理を有効にしました。

この方法で自動再接続を有効にしました。

最初の接続とログインに成功した後、インターネット接続がダウンして再接続プロセスが開始されると、次のエラーが表示されます。

再接続マネージャーは非常にうまく接続して認証しますが、前のエラーが表示されます! リソースも変更しようとしましたが、何も機能しません! 誰かが何が間違っているのかを理解するのを手伝ってくれますか?

0 投票する
2 に答える
761 参照

android - ストリーム管理でのデッド接続メッセージと配信確認の受信遅延 - MongooseIM サーバー 2.0.0

クライアント側またはサーバー側の両方でストリーム管理を有効にしました。2 人のユーザー A と B がいます。両方のユーザーがオンラインです。その後、ユーザー A が突然接続を失いました。しかし、ユーザーはサーバーだけでなくユーザー B でもオンラインに表示されます。その間、ユーザー B はユーザー A にメッセージを送信します。これらのメッセージは失われませんが、ユーザー A が再びオンラインになると、2 ~ 3 分後にメッセージを受け取ります。オフライン ストレージでメッセージ スタンザを取得し、配信レシートを受け取ります。この問題は、1 対 1 のチャットと mucLight で発生します。mongooseIM モジュールをカスタマイズする必要がありますか。接続が失われたときにユーザーが遅延メッセージを受け取った理由を教えてください。SMストレージをオフラインストレージ(MAM)に変更することはできますか? ここに同じ問題のリンクがあります。このリンクで同じ問題を見つけました ( https://www.ejabberd.im/faq/tcp)しかし、メッセージを失っていませんが、遅延を受信しました.

smack-4.2Android app.and で有効なストリーム管理に使用される次のコードで lib を使用していますXMPPTCPConnection

モジュール用のejabbered.cfgファイルは次のとおりですmod_stream_management

構成ファイルで次のモジュールも有効にしました

ここで、以前のストリームIDでxmppサーバーに接続する解決策はほとんど見つかりませんでしたが、mongooseIM-2.0サーバーでは機能しません。

よろしくお願いします。