Skip to content

onDisconnect tricks

jfarcand edited this page Jun 27, 2012 · 14 revisions

When the browser is closing the connection, it is possible, on the server side, to get notified and take appropriate steps. An application just have to register an AtmosphereResourceEventListener and implements the logic inside the onDisconnect method:

public class MyDisconnectListener extends AtmosphereResourceEventListenerAdapter {
    /**
     * {@inheritDoc}
     */
    @Override
    public void onDisconnect(AtmosphereResourceEvent event) {
        logger.trace("", event);
    }
}

There are some restrictions:

  • If your application is using the BlockingIOCometSupport, onDisconnect will not be called.
  • If you are using Jetty (all version), onDisconnect will not be called.

The workaround, for those restrictions, it to fake detection by adding, win web/application.xml

        <init-param>
            <param-name>org.atmosphere.cpr.CometSupport.maxInactiveActivity</param-name>
            <param-value>30000param-value>
        </init-param>

That will check if an connection has been idle more than 30 seconds and close it, like the disconnect detection would have done.

Step by Step Tutorials

Concepts & Architecture

15 Minutes Tutorial

Advanced Topics

API

Known WebServer Issues

References

External Documentations

githalytics.com alpha

Clone this wiki locally