关闭

Netty:ChannelInboundHandlerAdapter和ChannelOutboundHandlerAdapter

10853人阅读 评论(3) 收藏 举报
分类:

前面说到,服务端和客户端通讯,我们通常要绑定一个handler(Netty:Bootstrap的handler和childHandler)进行通道的监听,当收到数据时就会触发某个事件,从而进行进一步的处理。

目前我们用的比较多的就是ChannelInboundHandlerAdapter和ChannelOutboundHandlerAdapter。

ChannelInboundHandlerAdapter,看名字中的 IN,就是进入的意思,一般就是事件(event),比如当有数据到来时,channel被激活时或者不可用时,下面介绍几个最常用的。

channelActive

通道激活时触发,当客户端connect成功后,服务端就会接收到这个事件,从而可以把客户端的Channel记录下来,供后面复用

channelRead

这个必须用啊,当收到对方发来的数据后,就会触发,参数msg就是发来的信息,可以是基础类型,也可以是序列化的复杂对象。

channelReadComplete

channelRead执行后触发

exceptionCaught

出错是会触发,做一些错误处理


ChannelOutboundHandlerAdapter,看到了out,表示出去的动作,监听自己的IO操作,比如connect,bind等,在重写这个Adapter的方法时,记得执行super.xxxx,否则动作无法执行。

bind

服务端执行bind时,会进入到这里,我们可以在bind前及bind后做一些操作

connect

客户端执行connect连接服务端时进入


其它的操作可以参加Netty的官方文档http://netty.io/4.1/api/index.html

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:571114次
    • 积分:5906
    • 等级:
    • 排名:第4584名
    • 原创:92篇
    • 转载:7篇
    • 译文:0篇
    • 评论:268条
    文章分类