|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
public interface ChannelUpstreamHandler
处理或拦截一个上游ChannelEvent
,并发送一个ChannelEvent
到管道里的下一个处理器.
该接口大多数使用情况是拦截一个使用I/O工作者产生的I/O请求并转化接收到的消息或执行相关业务逻辑.
SimpleChannelUpstreamHandler
大多数情况下,你可以使用一个SimpleChannelUpstreamHandler
去实现一个上游处理器是因为它为每个事件类型提供了一个独立的处理器.然而如果你想使用更通用的方式处理各种各样的事件类型时你可以直接实现该接口.
你可以转发接收到的上游或下游事件.尽管ChannelUpstreamHandler
可以合法的发送下游事件(如.出站),但是大多数情况下是用来发送上游事件的(如.进站):
// 发送上游事件 (入站) void handleUpstream(ChannelHandlerContext
ctx,ChannelEvent
e) throws Exception { ... ctx.sendUpstream(e); ... } // 发送下游事件 (出站) void handleDownstream(ChannelHandlerContext
ctx,ChannelEvent
e) throws Exception { ... ctx.sendDownstream(newDownstreamMessageEvent
(...)); ... }
你可以使用在Channels
中很多各种各样的有用的帮助方法去生成和发送人工或非人工的事件.
ChannelHandler
.
handleUpstream
会被同一个线程(如.I/O线程)顺序的调用,
因此处理器不必担心在上一个上游事件完成之前一个新的上游事件被调用问题.
这并不意味着每个Channel
对应一个线程;一些传输的I/O线程可以服务多个Channel
(如.NIO传输), 但其他传输的I/O线程只能服务一个(如.OIO传输).
然而,如果你添加一个ExecutionHandler
到一个ChannelPipeline
,该行为改变会依赖于什么Executor
被用来派发事件.请参考ExecutionHandler
了解更多信息.
嵌套类摘要 |
---|
从接口 org.jboss.netty.channel.ChannelHandler 继承的嵌套类/接口 |
---|
ChannelHandler.Sharable |
方法摘要 | |
---|---|
void |
handleUpstream(ChannelHandlerContext ctx,
ChannelEvent e)
处理一个指定的上游事件. |
方法详细信息 |
---|
void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) throws java.lang.Exception
ctx
- 处理器的上下文对象e
- 要处理或拦截的事件
java.lang.Exception
|
|||||||||
上一个类 下一个类 | 框架 无框架 | ||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |