如何在Atmosphere中关闭浏览器连接时销毁BroadCaster

时间:2012-01-21 15:43:23

标签: java comet tomcat7 atmosphere

我在tomcat 7.0.23中使用大气运行时创建了简单的服务器推送 我能够从浏览器中的服务器获取消息(数据),现在问题是当我关闭连接(浏览器)时,servlet继续广播。我已经提到了大气白皮书。通过配置CometConnectionManagerValve Valve ,tomcat 7支持 Auto-detectclientremotedisconnection 我已经做过了。

<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 来跟踪各种事件。再次它没有调用任何方法..

请帮忙。 提前谢谢。

0 个答案:

没有答案