Package com.vaadin.server.communication
Class HeartbeatHandler
- java.lang.Object
-
- com.vaadin.server.SynchronizedRequestHandler
-
- com.vaadin.server.communication.HeartbeatHandler
-
- All Implemented Interfaces:
RequestHandler
,SessionExpiredHandler
,Serializable
public class HeartbeatHandler extends SynchronizedRequestHandler implements SessionExpiredHandler
Handles heartbeat requests. Heartbeat requests are periodically sent by the client-side to inform the server that the UI sending the heartbeat is still alive (the browser window is open, the connection is up) even when there are no UIDL requests for a prolonged period of time. UIs that do not receive either heartbeat or UIDL requests are eventually removed from the session and garbage collected.- Since:
- 7.1
- Author:
- Vaadin Ltd
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description HeartbeatHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
canHandleRequest(VaadinRequest request)
Check whether a request may be handled by this handler.boolean
handleSessionExpired(VaadinRequest request, VaadinResponse response)
Called when the a session expiration has occured and a notification needs to be sent to the user.boolean
synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response)
Handles a heartbeat request for the given session.-
Methods inherited from class com.vaadin.server.SynchronizedRequestHandler
handleRequest
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.server.RequestHandler
handleRequest
-
-
-
-
Method Detail
-
canHandleRequest
protected boolean canHandleRequest(VaadinRequest request)
Description copied from class:SynchronizedRequestHandler
Check whether a request may be handled by this handler. This can be used as an optimization to avoid locking the session just to investigate some method property. The default implementation just returnstrue
which means that all requests will be handled by callingSynchronizedRequestHandler.synchronizedHandleRequest(VaadinSession, VaadinRequest, VaadinResponse)
with the session locked.- Overrides:
canHandleRequest
in classSynchronizedRequestHandler
- Parameters:
request
- the request to handle- Returns:
true
if the request handling should continue once the session has been locked;false
if there's no need to lock the session since the request would still not be handled.
-
synchronizedHandleRequest
public boolean synchronizedHandleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException
Handles a heartbeat request for the given session. Reads the GET parameter namedUIConstants.UI_ID_PARAMETER
to identify the UI. If the UI is found in the session, sets itheartbeat timestamp
to the current time. Otherwise, writes a HTTP Not Found error to the response.- Specified by:
synchronizedHandleRequest
in classSynchronizedRequestHandler
- Parameters:
session
- The session for the requestrequest
- The request to handleresponse
- 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- See Also:
SynchronizedRequestHandler.handleRequest(VaadinSession, VaadinRequest, VaadinResponse)
-
handleSessionExpired
public boolean handleSessionExpired(VaadinRequest request, VaadinResponse response) throws IOException
Description copied from interface:SessionExpiredHandler
Called when the a session expiration has occured and a notification needs to be sent to the user. If a response is written, this method should returntrue
to indicate that no moreSessionExpiredHandler
handlers should be invoked for the request.- Specified by:
handleSessionExpired
in interfaceSessionExpiredHandler
- Parameters:
request
- The request to handleresponse
- 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
-
-