
@ChannelHandler.Sharable public class ReadTimeoutHandler extends SimpleChannelUpstreamHandler implements LifeCycleAwareChannelHandler, ExternalResourceReleasable
ReadTimeoutException when no data was read within a certain
period of time.
public class MyPipelineFactory implementsTheChannelPipelineFactory{ private finalTimertimer; private finalChannelHandlertimeoutHandler; public MyPipelineFactory(Timertimer) { this.timer = timer; this.timeoutHandler = newReadTimeoutHandler(timer, 30), // timer must be shared. } publicChannelPipelinegetPipeline() { // An example configuration that implements 30-second read timeout: returnChannels.pipeline( timeoutHandler, new MyHandler()); } }ServerBootstrapbootstrap = ...;Timertimer = newHashedWheelTimer(); ... bootstrap.setPipelineFactory(new MyPipelineFactory(timer)); ...
Timer which was specified when the ReadTimeoutHandler is
created should be stopped manually by calling releaseExternalResources()
or Timer.stop() when your application shuts down.WriteTimeoutHandler,
IdleStateHandlerChannelHandler.Sharable| Constructor and Description |
|---|
ReadTimeoutHandler(Timer timer,
int timeoutSeconds)
Creates a new instance.
|
ReadTimeoutHandler(Timer timer,
long timeout,
TimeUnit unit)
Creates a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
afterAdd(ChannelHandlerContext ctx) |
void |
afterRemove(ChannelHandlerContext ctx) |
void |
beforeAdd(ChannelHandlerContext ctx) |
void |
beforeRemove(ChannelHandlerContext ctx) |
void |
channelClosed(ChannelHandlerContext ctx,
ChannelStateEvent e)
Invoked when a
Channel was closed and all its related resources
were released. |
void |
channelOpen(ChannelHandlerContext ctx,
ChannelStateEvent e)
Invoked when a
Channel is open, but not bound nor connected. |
void |
messageReceived(ChannelHandlerContext ctx,
MessageEvent e)
Invoked when a message object (e.g:
ChannelBuffer) was received
from a remote peer. |
protected void |
readTimedOut(ChannelHandlerContext ctx) |
void |
releaseExternalResources()
Stops the
Timer which was specified in the constructor of this
handler. |
channelBound, channelConnected, channelDisconnected, channelInterestChanged, channelUnbound, childChannelClosed, childChannelOpen, exceptionCaught, handleUpstream, writeCompletepublic ReadTimeoutHandler(Timer timer, int timeoutSeconds)
timer - the Timer that is used to trigger the scheduled event.
The recommended Timer implementation is HashedWheelTimer.timeoutSeconds - read timeout in secondspublic void releaseExternalResources()
Timer which was specified in the constructor of this
handler. You should not call this method if the Timer is in use
by other objects.releaseExternalResources in interface ExternalResourceReleasablepublic void beforeAdd(ChannelHandlerContext ctx) throws Exception
beforeAdd in interface LifeCycleAwareChannelHandlerExceptionpublic void afterAdd(ChannelHandlerContext ctx) throws Exception
afterAdd in interface LifeCycleAwareChannelHandlerExceptionpublic void beforeRemove(ChannelHandlerContext ctx) throws Exception
beforeRemove in interface LifeCycleAwareChannelHandlerExceptionpublic void afterRemove(ChannelHandlerContext ctx) throws Exception
afterRemove in interface LifeCycleAwareChannelHandlerExceptionpublic void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception
SimpleChannelUpstreamHandlerChannel is open, but not bound nor connected.
channelOpen in class SimpleChannelUpstreamHandlerExceptionpublic void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception
SimpleChannelUpstreamHandlerChannel was closed and all its related resources
were released.channelClosed in class SimpleChannelUpstreamHandlerExceptionpublic void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception
SimpleChannelUpstreamHandlerChannelBuffer) was received
from a remote peer.messageReceived in class SimpleChannelUpstreamHandlerExceptionprotected void readTimedOut(ChannelHandlerContext ctx) throws Exception
ExceptionCopyright © 2008-2014 The Netty Project. All Rights Reserved.