0

燃え上がったサーバー側は、クライアント側が切断されたことを知りません。しかし、クライアント側のネットワークがダウンしていることを知っているようです。

私の場合、ポーリングチャネルを使用し、blazedsのソースコードをダウンロードして、FlexClientOutboundQueueProcessor.flush(MessageClient messageClient, List<Message> outboundQueue)メソッドにログ出力を追加します。

次に、これを見ました。クライアントがサブスクライブすると、サーバー側がFlexClientOutboundQueueProcessor.flush3秒ごとにメソッドを呼び出し、flushメソッドで追加したものを出力します。次に、クライアントのネットワークのみをシャットダウンし、ブラウザー(ネットワークが異なるクライアントとサーバー)を閉じません。 )、サーバー側は何も出力しないことがわかりました。これは、サーバー側がflushメソッドを呼び出さないことを意味します。

そして、30分以上クライアントのネットワークを回復した後、サーバー側は引き続きフラッシュメソッドを呼び出します(クライアントのブラウザーを閉じても、クライアントのセッションは破棄されません。30分後、サーバー側はセッションを破棄します) 。

今、私は2つの質問があります:

  1. サーバー側は、クライアントのネットワークがダウンしたことをどのように認識しますか?クライアントのネットワークを監視するリスナーはありますか?もしそうなら、それはどこにありますか?そうでない場合、コードはどこでどのように使用されますか?

  2. FlexClientOutboundQueueProcessor.flushサーバー側は3秒ごとにメソッドを呼び出すようですが、この間隔を構成できますか?そして、このタイミングタスクを開始または停止するコードはどこにありますか?

4

1 に答える 1

0

ここであなたの最初の質問に答えてください:FlexクライアントがBlazeDS宛先から切断したときの(サーバー側での)検出

構成について。services-config.xmlで構成できます。

BlazeDSアプリケーションの例

サーブレットベースのエンドポイントを使用したチャネルの構成

于 2012-09-21T11:03:19.130 に答える