tomcat 7.0.23でatmosphereランタイムを使用して単純なサーバープッシュを作成しました。ブラウザーのサーバーからメッセージ(データ)を取得できます。問題は、接続(ブラウザー)を閉じるたびに、サーブレットがブロードキャストを継続することです。雰囲気白書を参考にしました。 私がすでに行ったCometConnectionManagerValveバルブを構成することにより、Tomcat7でクライアントのリモート切断の自動検出がサポートされていることに言及しています。
<Engine> <Valve className="org.apache.catalina.valves.CometConnectionManagerValve"/><Engine>
しかし、何も起こりません。これが私のonStateChangeメソッドです。
public void onStateChange(AtmosphereResourceEvent<HttpServletRequest, HttpServletResponse> event)
throws IOException {
System.out.println("###############################ON STATE CHANGE#######################################");
System.out.println("BroadCaster Id : "+event.getResource().getBroadcaster().getID());
if(event.isCancelled()) {
System.out.println("Cancelled....");
event.getResource().getBroadcaster().destroy();
}
}
また、さまざまなイベントを追跡するためにAtmosphereResourceEventListenerを作成しました。繰り返しますが、メソッドを呼び出さないでください。
助けてください。前もって感謝します。