Class PushRequestHandler

java.lang.Object
com.vaadin.flow.server.communication.PushRequestHandler
All Implemented Interfaces:
RequestHandler, SessionExpiredHandler, Serializable

public class PushRequestHandler extends Object implements RequestHandler, SessionExpiredHandler
Handles requests to open a push (bidirectional) communication channel between the client and the server. After the initial request, communication through the push channel is managed by PushAtmosphereHandler and PushHandler.

For internal use only. May be renamed or removed in a future release.

Since:
1.0
Author:
Vaadin Ltd
See Also:
  • Constructor Details

    • PushRequestHandler

      public PushRequestHandler(VaadinServletService service) throws ServiceException
      Creates an instance connected to the given service.
      Parameters:
      service - the service this handler belongs to
      Throws:
      ServiceException - if initialization of Atmosphere fails
  • Method Details

    • createPushHandler

      protected PushHandler createPushHandler(VaadinServletService service)
      Creates a push handler for this request handler.

      Create your own request handler and override this method if you want to customize the PushHandler, e.g. to dynamically decide the suspend timeout.

      Parameters:
      service - the vaadin service
      Returns:
      the push handler to use for this service
    • handleRequest

      public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
      Description copied from interface: RequestHandler
      Called when a request needs to be handled. If a response is written, this method should return true to indicate that no more request handlers should be invoked for the request.

      Note that request handlers by default do not lock the session. If you are using VaadinSession or anything inside the VaadinSession you must ensure the session is locked. This can be done by extending SynchronizedRequestHandler or by using VaadinSession.accessSynchronously(Command) or UI.accessSynchronously(Command).

      Specified by:
      handleRequest in interface RequestHandler
      Parameters:
      session - The session for the request
      request - The request to handle
      response - The response object to which a response can be written.
      Returns:
      true if a response has been written and no further request handlers should be called, otherwise false
      Throws:
      IOException - If an IO error occurred
    • destroy

      public void destroy()
      Frees any resources currently in use.
    • handleSessionExpired

      public boolean handleSessionExpired(VaadinRequest request, VaadinResponse response) throws IOException
      Description copied from interface: SessionExpiredHandler
      Called when the a session expiration has occurred and a notification needs to be sent to the user. If a response is written, this method should return true to indicate that no more SessionExpiredHandler handlers should be invoked for the request.
      Specified by:
      handleSessionExpired in interface SessionExpiredHandler
      Parameters:
      request - The request to handle
      response - The response object to which a response can be written.
      Returns:
      true if a response has been written and no further request handlers should be called, otherwise false
      Throws:
      IOException - If an IO error occurred