こんにちは私の目的は、セッションが無効になったときにキャッチして、FlexClientが加入しているすべての宛先にメッセージを送信することです。セッションがタイムアウトしたかどうかを理解する方法を教えてください
私は、sessionCretaed、sessionDestroyed、clientCreated、clientDestroyed、messageClientCreated、messageClientDestroyedをリッスンするサービスを実装しました。
問題は、私はmessageClientDestroyedを捕まえて、その接続先にユーザが切断したというメッセージを送信したいと思います。しかし、サブトピックを追加するとblazedsはmessageClientを破壊します。セッションが無効になり、すべてのmessageClientが破棄されるユーザーは別の場所に入り、サブトピックを消費者に追加するだけです。
このメカニズムを実装するための他のソリューションも開かれています。ユーザーがセッションタイムアウトで切断したり、サイトブラウザなどを閉じたときに、キャッチして購読先にメッセージを送信したいと考えています。
ありがとうございました。
まずはお返事ありがとうございます。最初はあなたが言ったようにサービスを実装しましたが、私の目的は購読されたチャンネルにメッセージを送信するので、購読先を取得する必要があります。しかしblazedsはまずmessageClients、次にFlexClientを破壊し、最後にセッションを破棄します。私がsessionDestroyedでFlexClientやmessageClientを取得しようとすると、何も得られません。今はメッセージを送るためにmessageClientDestroyedイベントをキャッチしていますが、セッションが破棄されるときに呼び出されるのではなく、クライアントがサブトピックを追加するときに呼び出されるため、セッションが破棄されるか、 – maniacneron
これは奇妙なことですが、sessionDestoryedに渡されたFlexSessionオブジェクトは、そのクライアントに残しておく必要があります。 MessageServiceインスタンスにアクセスできる場合は、pushMessageToClients()を呼び出すことができます.... http://livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/services/MessageService.html –