|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||
public interface ChannelEvent

关联到通道的I/O事件或I/O请求.
一个ChannelEvent会被在ChannelPipeline中一系列的ChannelHandler
处理.
每一个事件要么是下游事件要么是上游事件.如果一个事件从ChannelPipeline
里的第一个处理器流动转发到最后一个处理器,我们称为上游事件并说"事件往上游." 如果一个事件从
ChannelPipeline
里的最后一个处理器流动转发到第一个处理器,我们称为下游事件并说"事件往下游."(请参阅
ChannelPipeline里的图表了解更多解释.)
当你的服务器从客户端接收到一个消息,该接收到的消息关联的事件就是一个上游事件.但你的服务器发送或回复消息到客户端,该写请求关联的事件是一个下游事件.
对于客户端也是进站操作的结果如 InputStream.read(byte[]),下游事件通常是出站操作的请求
OutputStream.write(byte[]),Socket.connect(SocketAddress),和
Socket.close().
| 事件名称 | 事件类型和条件 | 意思 |
|---|---|---|
"messageReceived" |
MessageEvent |
从远程端接收到的消息对象(如. ChannelBuffer) |
"exceptionCaught" |
ExceptionEvent |
由I/O线程或处理器抛出的异常 |
"channelOpen" |
ChannelStateEvent(state = OPEN, value = true) |
打开Channel,但不绑定和连接 |
"channelClosed" |
ChannelStateEvent(state = OPEN, value = false) |
一个@link Channel}被关闭和所有关联资源被释放 |
"channelBound" |
ChannelStateEvent(state = BOUND, value = SocketAddress) |
Channel打开并绑定到本地地址,但不连接 |
"channelUnbound" |
ChannelStateEvent(state = BOUND, value = null) |
取消Channel绑定 |
"channelConnected" |
ChannelStateEvent(state = CONNECTED, value =
SocketAddress) |
Channel打开,绑定到本地地址,并连接到远程地址 |
"writeComplete" |
WriteCompletionEvent |
已完成写到远程端 |
"channelDisconnected" |
ChannelStateEvent(state = CONNECTED, value = null) |
Channel与远程断开连接 |
"channelInterestChanged" |
ChannelStateEvent(state = INTEREST_OPS, no value) |
Channel的interestOps发送改变 |
还有两个附加事件只用于有子通道的父通道(如. ServerSocketChannel).
| 事件名称 | 事件类型和条件 | 意思 |
|---|---|---|
"childChannelOpen" |
ChildChannelStateEvent( childChannel.isOpen() = true) |
一个子Channel被打开(如. 一个父通道接受一个连接.) |
"childChannelClosed" |
ChildChannelStateEvent( childChannel.isOpen() = false) |
一个子Channel被关闭(如.接受的连接被关闭.) |
| 事件名称 | 事件类型和条件 | 意思 |
|---|---|---|
"write" |
MessageEvent |
发送消息到一个Channel. |
"bind" |
ChannelStateEvent(state = BOUND, value = SocketAddress) |
绑定Channel到指定的本地地址. |
"unbind" |
ChannelStateEvent(state = BOUND, value = null) |
取消Channel绑定. |
"connect" |
ChannelStateEvent(state = CONNECTED, value =
SocketAddress) |
连接Channel到指定的远程地址. |
"disconnect" |
ChannelStateEvent(state = CONNECTED, value = null) |
断开Channel连接. |
"close" |
ChannelStateEvent(state = OPEN, value = false) |
关闭Channel. |
其他没有在这里描述的事件类型和条件将会被忽略和废弃. 请注意在表中没有"open".那是因为当一个Channel被
ChannelFactory创建后一直都是打开的.
请参阅ChannelHandler和ChannelPipeline
文档了解一个事件如何在一个管道里流动和在你的应用程序里如何处理事件.
| 方法摘要 | |
|---|---|
Channel |
getChannel()
返回关联到该事件的 Channel. |
ChannelFuture |
getFuture()
返回关联到该事件的 ChannelFuture. |
| 方法详细信息 |
|---|
Channel getChannel()
Channel.
ChannelFuture getFuture()
ChannelFuture. 如果事件是一个上游事件,则该方法会总是返回一个
SucceededChannelFuture
,因为事件已经发生.如果事件是一个下游事件(如.I/O请求),返回的future会在I/O请求成功或失败时收到通知.
|
|||||||||
| 上一个类 下一个类 | 框架 无框架 | ||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | ||||||||