|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mina.common.IoFilterAdapter
org.apache.mina.filter.keepalive.KeepAliveFilter
public class KeepAliveFilter
An IoFilter
that sends a keep-alive request on
sessionIdle event with IdleStatus.READER_IDLE
and sends
back the response for the keep-alive request.
IoSessionConfig.setIdleTime(IdleStatus, int)
IdleStatus.READER_IDLE
automatically. Changing the idleTime
property for IdleStatus.READER_IDLE
will lead this filter to a
unexpected behavior.
KeepAliveMessageFactory
KeepAliveMessageFactory
, which determines a received or sent
message is a keep-alive message or not and creates a new keep-alive
message:
Name | Description | Implementation |
---|---|---|
Active | You want a keep-alive request is sent when the reader is idle.
Once the request is sent, the response for the request should be
received within keepAliveRequestTimeout seconds. Otherwise,
the specified KeepAlivePolicy will be enforced. If a keep-alive
request is received, its response also should be sent back. |
Both KeepAliveMessageFactory.getRequest(IoSession) and
KeepAliveMessageFactory.getResponse(IoSession, Object) must
return a non-null. |
Semi-active | You want a keep-alive request to be sent when the reader is idle. However, you don't really care if the response is received or not. If a keep-alive request is received, its response should also be sent back. | Both KeepAliveMessageFactory.getRequest(IoSession) and
KeepAliveMessageFactory.getResponse(IoSession, Object) must
return a non-null, and the policy property
should be set to KeepAlivePolicy.OFF or KeepAlivePolicy.LOG .
|
Passive | You don't want to send a keep-alive request by yourself, but the response should be sent back if a keep-alive request is received. | KeepAliveMessageFactory.getRequest(IoSession) must return
null and KeepAliveMessageFactory.getResponse(IoSession, Object)
must return a non-null. |
Deaf Speaker | You want a keep-alive request to be sent when the reader is idle, but you don't want to send any response back. | KeepAliveMessageFactory.getRequest(IoSession) must return
a non-null and
KeepAliveMessageFactory.getResponse(IoSession, Object) must
return null. |
Silent Listener | You don't want to send a keep-alive request by yourself nor send any response back. | Both KeepAliveMessageFactory.getRequest(IoSession) and
KeepAliveMessageFactory.getResponse(IoSession, Object) must
return null. |
KeepAliveMessageFactory.isRequest(IoSession, Object)
and
KeepAliveMessageFactory.isResponse(IoSession, Object)
properly
whatever case you chose.
KeepAlivePolicy
.
The default policy is KeepAlivePolicy.CLOSE
. Setting the policy
to KeepAlivePolicy.OFF
stops this filter from waiting for response
messages and therefore disables keepAliveRequestTimeout property.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.apache.mina.common.IoFilter |
---|
IoFilter.NextFilter |
Constructor Summary | |
---|---|
KeepAliveFilter(KeepAliveMessageFactory messageFactory)
Creates a new instance with the default KeepAlivePolicy and
the default timeout values (policy =
KeepAlivePolicy.CLOSE , keepAliveRequestInterval = 60
and keepAliveRequestTimeout = 30). |
|
KeepAliveFilter(KeepAliveMessageFactory messageFactory,
KeepAlivePolicy policy)
Creates a new instance with the default timeout values (keepAliveRequestInterval = 60 and keepAliveRequestTimeout = 30). |
|
KeepAliveFilter(KeepAliveMessageFactory messageFactory,
KeepAlivePolicy policy,
int keepAliveRequestInterval,
int keepAliveRequestTimeout)
Creates a new instance. |
Methods inherited from class org.apache.mina.common.IoFilterAdapter |
---|
destroy, exceptionCaught, filterClose, filterSetTrafficMask, filterWrite, init, onPreRemove, sessionClosed, sessionCreated, sessionOpened |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public KeepAliveFilter(KeepAliveMessageFactory messageFactory)
KeepAlivePolicy
and
the default timeout values (policy =
KeepAlivePolicy.CLOSE
, keepAliveRequestInterval = 60
and keepAliveRequestTimeout = 30).
public KeepAliveFilter(KeepAliveMessageFactory messageFactory, KeepAlivePolicy policy)
public KeepAliveFilter(KeepAliveMessageFactory messageFactory, KeepAlivePolicy policy, int keepAliveRequestInterval, int keepAliveRequestTimeout)
Method Detail |
---|
public KeepAlivePolicy getPolicy()
public void setPolicy(KeepAlivePolicy policy)
public int getKeepAliveRequestInterval()
public void setKeepAliveRequestInterval(int keepAliveRequestInterval)
public int getKeepAliveRequestTimeout()
public void setKeepAliveRequestTimeout(int keepAliveRequestTimeout)
public KeepAliveMessageFactory getMessageFactory()
public void onPreAdd(IoFilterChain parent, String name, IoFilter.NextFilter nextFilter) throws Exception
IoFilter
IoFilter.init()
is invoked.
onPreAdd
in interface IoFilter
onPreAdd
in class IoFilterAdapter
parent
- the parent who called this methodname
- the name assigned to this filternextFilter
- the IoFilter.NextFilter
for this filter. You can reuse
this object until this filter is removed from the chain.
Exception
public void onPostAdd(IoFilterChain parent, String name, IoFilter.NextFilter nextFilter) throws Exception
IoFilter
IoFilter.init()
is invoked.
onPostAdd
in interface IoFilter
onPostAdd
in class IoFilterAdapter
parent
- the parent who called this methodname
- the name assigned to this filternextFilter
- the IoFilter.NextFilter
for this filter. You can reuse
this object until this filter is removed from the chain.
Exception
public void onPostRemove(IoFilterChain parent, String name, IoFilter.NextFilter nextFilter) throws Exception
IoFilter
IoFilter.destroy()
is invoked.
onPostRemove
in interface IoFilter
onPostRemove
in class IoFilterAdapter
parent
- the parent who called this methodname
- the name assigned to this filternextFilter
- the IoFilter.NextFilter
for this filter. You can reuse
this object until this filter is removed from the chain.
Exception
public void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, Object message) throws Exception
IoFilter
IoHandler.messageReceived(IoSession,Object)
event.
messageReceived
in interface IoFilter
messageReceived
in class IoFilterAdapter
Exception
public void messageSent(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception
IoFilter
IoHandler.messageSent(IoSession,Object)
event.
messageSent
in interface IoFilter
messageSent
in class IoFilterAdapter
Exception
public void sessionIdle(IoFilter.NextFilter nextFilter, IoSession session, IdleStatus status) throws Exception
IoFilter
IoHandler.sessionIdle(IoSession,IdleStatus)
event.
sessionIdle
in interface IoFilter
sessionIdle
in class IoFilterAdapter
Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |