Class ReadTimeoutHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.ChannelDuplexHandler
io.netty.handler.timeout.IdleStateHandler
io.netty.handler.timeout.ReadTimeoutHandler
- All Implemented Interfaces:
ChannelHandler, ChannelInboundHandler, ChannelOutboundHandler
Raises a
ReadTimeoutException when no data was read within a certain
period of time.
// The connection is closed when there is no inbound traffic // for 30 seconds. public class MyChannelInitializer extendsChannelInitializer<Channel> { public void initChannel(Channelchannel) { channel.pipeline().addLast("readTimeoutHandler", newReadTimeoutHandler(30)); channel.pipeline().addLast("myHandler", new MyHandler()); } } // Handler should handle theReadTimeoutException. public class MyHandler extendsChannelDuplexHandler{@Overridepublic void exceptionCaught(ChannelHandlerContextctx,Throwablecause) throwsException{ if (cause instanceofReadTimeoutException) { // do something } else { super.exceptionCaught(ctx, cause); } } }ServerBootstrapbootstrap = ...; ... bootstrap.childHandler(new MyChannelInitializer()); ...
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionReadTimeoutHandler(int timeoutSeconds) Creates a new instance.ReadTimeoutHandler(long timeout, java.util.concurrent.TimeUnit unit) Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidchannelIdle(ChannelHandlerContext ctx, IdleStateEvent evt) Is called when anIdleStateEventshould be fired.protected voidIs called when a read timeout was detected.Methods inherited from class IdleStateHandler
channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, getAllIdleTimeInMillis, getReaderIdleTimeInMillis, getWriterIdleTimeInMillis, handlerAdded, handlerRemoved, newIdleStateEvent, resetReadTimeout, resetWriteTimeout, schedule, writeMethods inherited from class ChannelDuplexHandler
bind, close, connect, deregister, disconnect, flush, readMethods inherited from class ChannelInboundHandlerAdapter
channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredMethods inherited from class ChannelHandlerAdapter
ensureNotSharable, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
closed
private boolean closed
-
-
Constructor Details
-
ReadTimeoutHandler
public ReadTimeoutHandler(int timeoutSeconds) Creates a new instance.- Parameters:
timeoutSeconds- read timeout in seconds
-
ReadTimeoutHandler
public ReadTimeoutHandler(long timeout, java.util.concurrent.TimeUnit unit) Creates a new instance.- Parameters:
timeout- read timeoutunit- theTimeUnitoftimeout
-
-
Method Details
-
channelIdle
protected final void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt) throws java.lang.Exception Description copied from class:IdleStateHandlerIs called when anIdleStateEventshould be fired. This implementation callsChannelHandlerContext.fireUserEventTriggered(Object).- Overrides:
channelIdlein classIdleStateHandler- Throws:
java.lang.Exception
-
readTimedOut
Is called when a read timeout was detected.- Throws:
java.lang.Exception
-