1

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

2016-04-11 08:53:07.430 [info] <0.5432.11>@ejabberd_c2s:terminate:1752 Closing former stream of resumed session for 54ff31587261691606060000@108.59.83.204/sender
2016-04-11 08:53:07.430 [info] <0.7868.11>@ejabberd_c2s:handle_unacked_stanzas:2814 1 stanzas were not acknowledged by 54ff31587261691606060000@108.59.83.204/sender
2016-04-11 08:53:07.430 [info] <0.7868.11>@ejabberd_c2s:handle_resume:2731 Resumed session for 54ff31587261691606060000@108.59.83.204/sender
2016-04-11 08:53:08.602 [info] <0.8227.11>@ejabberd_c2s:handle_enable:2644 Stream management with resumption enabled for 5695b87d7261697179130000@108.59.83.204/sender
2016-04-11 08:53:09.516 [info] <0.8227.11>@ejabberd_c2s:terminate:1779 ({socket_state,gen_tcp,#Port<0.138899>,<0.8244.11>}) Close session for 5695b87d7261697179130000@108.59.83.204/sender
2016-04-11 08:53:09.517 [info] <0.8227.11>@ejabberd_c2s:handle_unacked_stanzas:2814 1 stanzas were not acknowledged by 5695b87d7261697179130000@108.59.83.204/sender
2016-04-11 08:53:09.987 [info] <0.458.0>@ejabberd_listener:accept:333 (#Port<0.138210>) Accepted connection 106.196.172.221:58035 -> 10.240.0.3:5222
2016-04-11 08:53:11.157 [info] <0.8254.11>@ejabberd_c2s:wait_for_sasl_response:919 ({socket_state,gen_tcp,#Port<0.138210>,<0.8185.11>}) Accepted authentication for 5695b87d7261697179130000 by undefined from 106.196.172.221

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

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

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

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

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

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

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

4

1 に答える 1

1

これは、ストリーム管理を使用していて、クライアントがスタンザを受け取ったことを確認していないことを意味します。これがメッセージである場合、オフライン配信または別の接続で再送信するために保存されるため、メッセージが失われることはありません。

于 2016-04-12T07:53:25.730 に答える