Class HeartbeatInterceptor
- All Implemented Interfaces:
AtmosphereInterceptor,AtmosphereConfigAware,InvokationOrder
An interceptor that send whitespace every in 60 seconds by default. Another value could be specified with the
ApplicationConfig.HEARTBEAT_INTERVAL_IN_SECONDS in the atmosphere config. The heartbeat will be scheduled as soon as the
request is suspended.
Moreover, any client can ask for a particular value with the HeaderConfig.X_HEARTBEAT_SERVER header set in
request. This value will be taken in consideration if it is greater than the configured value. Client can also
specify the value "0" to disable heartbeat.
Finally the server notifies thanks to the JavaScriptProtocol the desired heartbeat interval that the client
should applies. This interceptor just manage the configured value and the protocol sends
the value to the client.
- Author:
- Jeanfrancois Arcand
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.atmosphere.interceptor.InvokationOrder
InvokationOrder.PRIORITY -
Field Summary
FieldsFields inherited from interface org.atmosphere.interceptor.InvokationOrder
AFTER_DEFAULT, BEFORE_DEFAULT, FIRST_BEFORE_DEFAULT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintGets the desired heartbeat frequency from client.clientHeartbeatFrequencyInSeconds(int clientHeartbeatFrequencyInSeconds) clock(int interval, AtmosphereResource r, AtmosphereRequest request, AtmosphereResponse response) Configures the heartbeat sent by the server in an interval in seconds specified in parameter for the given resource.voidconfigure(AtmosphereConfig config) Configure an AtmosphereFramework object.voiddestroy()Clean the AtmosphereInterceptor when removed or when the Atmosphere is undeployed.protected intExtracts the heartbeat interval as explained in class description.byte[]Gets the bytes to use when sending an heartbeat for both client and server.intheartbeatFrequencyInSeconds(int heartbeatFrequencyInSeconds) Invoked before anAtmosphereResourcegets dispatched toAtmosphereHandler.paddingText(byte[] paddingBytes) booleanresumeOnHeartbeat(boolean resumeOnHeartbeat) toString()Methods inherited from class org.atmosphere.cpr.AtmosphereInterceptorAdapter
postInspect, priority
-
Field Details
-
INTERCEPTOR_ADDED
-
HEARTBEAT_FUTURE
- See Also:
-
-
Constructor Details
-
HeartbeatInterceptor
public HeartbeatInterceptor()
-
-
Method Details
-
paddingText
-
getPaddingBytes
public byte[] getPaddingBytes()Gets the bytes to use when sending an heartbeat for both client and server.
- Returns:
- the heartbeat value
-
heartbeatFrequencyInSeconds
-
heartbeatFrequencyInSeconds
public int heartbeatFrequencyInSeconds() -
clientHeartbeatFrequencyInSeconds
public int clientHeartbeatFrequencyInSeconds()Gets the desired heartbeat frequency from client.
- Returns:
- the frequency in seconds
-
clientHeartbeatFrequencyInSeconds
public HeartbeatInterceptor clientHeartbeatFrequencyInSeconds(int clientHeartbeatFrequencyInSeconds) -
resumeOnHeartbeat
public boolean resumeOnHeartbeat() -
resumeOnHeartbeat
-
configure
Description copied from interface:AtmosphereConfigAwareConfigure an AtmosphereFramework object.- Specified by:
configurein interfaceAtmosphereConfigAware- Overrides:
configurein classAtmosphereInterceptorAdapter- Parameters:
config-AtmosphereConfig
-
inspect
Description copied from interface:AtmosphereInterceptorInvoked before anAtmosphereResourcegets dispatched toAtmosphereHandler.- Specified by:
inspectin interfaceAtmosphereInterceptor- Overrides:
inspectin classAtmosphereInterceptorAdapter- Parameters:
r- aAtmosphereResource- Returns:
Action.CONTINUEorAction.SUSPENDto dispatch theAtmosphereResourceto otherAtmosphereInterceptororAtmosphereHandler. ReturnAction.TYPE.CANCELLEDto stop the processing.
-
extractHeartbeatInterval
Extracts the heartbeat interval as explained in class description. This method could be overridden to change the the configuration points.
- Parameters:
resource- the resource- Returns:
- the interval, 0 won't trigger the heartbeat
-
clock
public HeartbeatInterceptor clock(int interval, AtmosphereResource r, AtmosphereRequest request, AtmosphereResponse response) Configures the heartbeat sent by the server in an interval in seconds specified in parameter for the given resource.
- Parameters:
interval- the interval in secondsr- the resourcerequest- the request responseresponse- the resource response
-
toString
- Overrides:
toStringin classAtmosphereInterceptorAdapter
-
destroy
public void destroy()Description copied from interface:AtmosphereInterceptorClean the AtmosphereInterceptor when removed or when the Atmosphere is undeployed.- Specified by:
destroyin interfaceAtmosphereInterceptor- Overrides:
destroyin classAtmosphereInterceptorAdapter
-