org.jboss.netty.channel
类 SimpleChannelUpstreamHandler

java.lang.Object
  继承者 org.jboss.netty.channel.SimpleChannelUpstreamHandler
所有已实现的接口:
ChannelHandler, ChannelUpstreamHandler
直接已知子类:
BlockingReadHandler, FrameDecoder, HttpChunkAggregator, HttpContentDecoder, IdleStateAwareChannelUpstreamHandler, IdleStateHandler, ReadTimeoutHandler, ReplayingDecoder

public class SimpleChannelUpstreamHandler
extends java.lang.Object
implements ChannelUpstreamHandler

为每个事件类型提供单独处理方法的ChannelUpstreamHandler .处理器会把接收到的上游事件转型为更有意义的子类型事件并调用转型事件的适当方法.方法的名称与上游事件的名称一样.正如 ChannelEvent 文档所介绍.

如果你需要同时实现ChannelUpstreamHandlerChannelDownstreamHandler,请使用 SimpleChannelHandler

重写handleUpstream方法

你可以像重写一般Java方法一样重写 handleUpstream 方法. 请确保调用super.handleUpstream()以便其他处理器的方法可以被正确的调用:

 public class MyChannelHandler extends SimpleChannelUpstreamHandler {
 
     @Override
     public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
 
         // 记录所有通道状态改变.
         if (e instanceof ChannelStateEvent) {
             logger.info("Channel state changed: " + e);
         }
 
         super.handleUpstream(ctx, e);
     }
 }
 


嵌套类摘要
 
从接口 org.jboss.netty.channel.ChannelHandler 继承的嵌套类/接口
ChannelHandler.Sharable
 
构造方法摘要
SimpleChannelUpstreamHandler()
          创建一个实例.
 
方法摘要
 void channelBound(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel打开并且绑定到本地地址,但还没有连接时被调用.
 void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel被关闭且它所有关联的资源被释放时调用.
 void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel打开并且绑定到本地地址和已连接到远程地址时被调用.
 void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel被远程端断开连接时调用.
 void channelInterestChanged(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个ChannelinterestOps发送改变时调用.
 void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel打开,但还没有绑定和连接时被调用.
 void channelUnbound(ChannelHandlerContext ctx, ChannelStateEvent e)
          当一个Channel被本地地址取消绑定时调用.
 void childChannelClosed(ChannelHandlerContext ctx, ChildChannelStateEvent e)
          当一个子Channel被关闭时调用.
 void childChannelOpen(ChannelHandlerContext ctx, ChildChannelStateEvent e)
          当一个子Channel打开时调用.
 void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
          当一个I/O线程或ChannelHandler抛出异常时被调用.
 void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e)
          处理一个指定的上游事件.
 void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
          当一个从远端发来的消息对象(如: ChannelBuffer)被接收时调用.
 void writeComplete(ChannelHandlerContext ctx, WriteCompletionEvent e)
          当有东西被写到一个Channel时调用.
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SimpleChannelUpstreamHandler

public SimpleChannelUpstreamHandler()
创建一个实例.

方法详细信息

handleUpstream

public void handleUpstream(ChannelHandlerContext ctx,
                           ChannelEvent e)
                    throws java.lang.Exception
处理一个指定的上游事件. 把接收到的上游事件转型为更有意义的子类型事件并调用转型事件的适当方法.

指定者:
接口 ChannelUpstreamHandler 中的 handleUpstream
参数:
ctx - 处理器的上下文对象
e - 要处理或拦截的事件
抛出:
java.lang.Exception

messageReceived

public void messageReceived(ChannelHandlerContext ctx,
                            MessageEvent e)
                     throws java.lang.Exception
当一个从远端发来的消息对象(如: ChannelBuffer)被接收时调用.

抛出:
java.lang.Exception

exceptionCaught

public void exceptionCaught(ChannelHandlerContext ctx,
                            ExceptionEvent e)
                     throws java.lang.Exception
当一个I/O线程或ChannelHandler抛出异常时被调用.

抛出:
java.lang.Exception

channelOpen

public void channelOpen(ChannelHandlerContext ctx,
                        ChannelStateEvent e)
                 throws java.lang.Exception
当一个Channel打开,但还没有绑定和连接时被调用.

抛出:
java.lang.Exception

channelBound

public void channelBound(ChannelHandlerContext ctx,
                         ChannelStateEvent e)
                  throws java.lang.Exception
当一个Channel打开并且绑定到本地地址,但还没有连接时被调用.

抛出:
java.lang.Exception

channelConnected

public void channelConnected(ChannelHandlerContext ctx,
                             ChannelStateEvent e)
                      throws java.lang.Exception
当一个Channel打开并且绑定到本地地址和已连接到远程地址时被调用.

抛出:
java.lang.Exception

channelInterestChanged

public void channelInterestChanged(ChannelHandlerContext ctx,
                                   ChannelStateEvent e)
                            throws java.lang.Exception
当一个ChannelinterestOps发送改变时调用.

抛出:
java.lang.Exception

channelDisconnected

public void channelDisconnected(ChannelHandlerContext ctx,
                                ChannelStateEvent e)
                         throws java.lang.Exception
当一个Channel被远程端断开连接时调用.

抛出:
java.lang.Exception

channelUnbound

public void channelUnbound(ChannelHandlerContext ctx,
                           ChannelStateEvent e)
                    throws java.lang.Exception
当一个Channel被本地地址取消绑定时调用.

抛出:
java.lang.Exception

channelClosed

public void channelClosed(ChannelHandlerContext ctx,
                          ChannelStateEvent e)
                   throws java.lang.Exception
当一个Channel被关闭且它所有关联的资源被释放时调用.

抛出:
java.lang.Exception

writeComplete

public void writeComplete(ChannelHandlerContext ctx,
                          WriteCompletionEvent e)
                   throws java.lang.Exception
当有东西被写到一个Channel时调用.

抛出:
java.lang.Exception

childChannelOpen

public void childChannelOpen(ChannelHandlerContext ctx,
                             ChildChannelStateEvent e)
                      throws java.lang.Exception
当一个子Channel打开时调用.(如.一个服务端通道接受一个连接)

抛出:
java.lang.Exception

childChannelClosed

public void childChannelClosed(ChannelHandlerContext ctx,
                               ChildChannelStateEvent e)
                        throws java.lang.Exception
当一个子Channel被关闭时调用.(如.接收的连接被关闭)

抛出:
java.lang.Exception