C
-甲子类型的Channel
@ChannelHandler.Sharable public abstract class ChannelInitializer<C extends Channel> extends ChannelInboundHandlerAdapter
ChannelInboundHandler
,它提供了一个简单的方法来初始化一个Channel
,一旦它被注册到EventLoop
。
实现最经常的上下文中使用AbstractBootstrap.handler(ChannelHandler)
, AbstractBootstrap.handler(ChannelHandler)
和ServerBootstrap.childHandler(ChannelHandler)
来设置ChannelPipeline
一个的Channel
。
public class MyChannelInitializer extends ChannelInitializer
{
public void initChannel(Channel
channel) {
channel.pipeline().addLast("myHandler", new MyHandler());
}
}
ServerBootstrap
bootstrap = ...;
...
bootstrap.childHandler(new MyChannelInitializer());
...
请注意,该类标记为ChannelHandler.Sharable
,因此实施必须安全以便重新使用。
ChannelHandler.Sharable
Constructor and Description |
---|
ChannelInitializer() |
Modifier and Type | Method and Description |
---|---|
void |
channelRegistered(ChannelHandlerContext ctx)
|
void |
exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause)
通过记录和关闭 Throwable 来处理Throwable 。
|
void |
handlerAdded(ChannelHandlerContext ctx)
子类可以忽略这个方法。
|
protected abstract void |
initChannel(C ch)
该方法将在 Channel 注册后调用。
|
channelActive, channelInactive, channelRead, channelReadComplete, channelUnregistered, channelWritabilityChanged, userEventTriggered
ensureNotSharable, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerRemoved
protected abstract void initChannel(C ch) throws java.lang.Exception
Channel
,将调用此方法。
方法返回后,此实例将从Channel
的ChannelPipeline
中移除 。
ch
- 已注册的Channel
。
java.lang.Exception
- 发生错误时抛出。
在这种情况下,将由exceptionCaught(ChannelHandlerContext, Throwable)
处理,默认关闭Channel
。
public final void channelRegistered(ChannelHandlerContext ctx) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRegistered()
转发到ChannelPipeline
中的下一个ChannelInboundHandler
。
子类可以重写此方法来更改行为。
channelRegistered
在界面
ChannelInboundHandler
channelRegistered
在课堂上
ChannelInboundHandlerAdapter
java.lang.Exception
public void exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause) throws java.lang.Exception
Throwable
来处理Throwable 。
子类可以覆盖这个。
exceptionCaught
接口
ChannelHandler
exceptionCaught
在界面
ChannelInboundHandler
exceptionCaught
ChannelInboundHandlerAdapter
java.lang.Exception
public void handlerAdded(ChannelHandlerContext ctx) throws java.lang.Exception
handlerAdded
在界面
ChannelHandler
handlerAdded
在课程
ChannelHandlerAdapter
java.lang.Exception
Copyright © 2008–2018 The Netty Project. All rights reserved.