00:00
我们继续来分析China handler的作用和它的设计,那么China handler呢,其实就是我们所说的处理器了,它本身呢也是个接口,我们先来看一下各位朋友。该让老师失落。我们先来year,不着急,同学们看这里啊,China。这个China呢,我们看它的结构可以知道。我这边稍等一下,他这边会有点儿慢哈。有点卡来了,大家看它这里面呢,会诶怎么到这来应该看这个呀。为什么没切过来呢?我的光标定在这边的。又出问题了。很讨厌这个程序。好,那那就从这看吧,这怎么回事?我把光标定在这边,他应该马上切过来才对呀。真讨厌啊。
01:01
把提一下看看。我这个idea好像有点问题。我把它退出去,好吧,同学们稍等一下。然后我再骑下。稍等片刻。因为有时候我的idea不知道,经常会出现这种。就是就是调试的过程中,或者使用过程中,它没有响应了。回到这边来。因为我需要给大家看一下它相关的这些函数做一个分析。好,现在呢,回到这就看到了,大家看看到没有,在这个China handle China handle这个接口里面呢,它有两个非常重要的方法,一个是China added,一个是呃,一个是handler added,还有一个是handler removed。
02:13
对,那这两个方法呢,我们来看一下它是干什么的,第一个当把China handler添加到pipe的时候呢,它会被调用。这个China handleer呢,它会在添加的时候会被调用,还有一个从pipeline移除的时候也会调用handleer的,其实这两个方法我们在前面已经是不是用过了,比如说大家回到这边代码。你看。在这边,比如说我把这个断点先拿掉,是不是我们在去重写方法的时候,这边也可以也可以重写这两个方法。是不是可以重写这两个方法?怎么又又卡了哦,来了看。Handler added,还有一个handler被remove,这两个方法刚才我们已经说过了,就是它会在什么时候呢?它是在我们把handler添加到PE单的时候,它会被调用,还有一个呢,是从呃拍单里面移除时候会被调用,那你就可以做相应的处理了。
03:15
接着我们来继续分析China handle的作用,它是干什么的呢?就是处理IO事件或拦截IO事件,并将其转发给下一个处理器。哈德尔在处理事件时,分为入站和出站,两个方向的操作都是不同的,因此呢,Ni定义了两个子接口,继承China,那我们看一下是怎么样一个关系。一个叫做China inbound handler,这个是处理入站事件的接口,那这里面呢,它有相应的方法,比如说read,还有register register active inacive等等。那么同学们要注意来看。这个事件就是同学们看到的China active是用于当China处于活动状态时,它会被调用。
04:04
还有一个呢,就是China read,当从China读取数据时,这个方法会被调用。对程序员呢,往往会重写一些方法,比如说我们经常对哪个方法重写呢,就是对这个方法。对不对?我们往往是要对这个方法去读重写,因为你会拿到它的数据进行下一步的处理吗?对,当或者是当发生关注的事件时,需要在方中实现我们自己的业务逻辑,因为事件发生的时候呢,来体会回调相应的方法,大家有没有发现这些方法我们其实没有主动调用,而是由什么呢ni在进行回调的。那么我们再来看还有China outbound handler,里面有哪些方法呢?大家看,这里面常见的叫band。Connect看到没有,你为什么在这里去band connect,还有像close read,你看B,方法是当请求将China绑定到本地地址的时候调用。
05:02
没问题吧,还有close,当请求关闭枪的时候会被调用,那那出站操作都是跟一些连接和写出数据类似的方法。要我们是初战,这边是初战的。大家还记不记得我们在客端?是不是可以进行这样一些系一系列操作,还记得吗?好,所以说这边呢,一般是出站操作跟它关联起来的,那还有一个就是China dupl handle,这个handle呢,大家要注意,它既能处理出战,也能处理入站,那么我们来看一下它是怎么来的打开。我们idea,我们来搜一下。同样,我把。它的名称拿过来给大家。好,我们看一下。同学们可以看到它的一个定义。咱们看它首先是一个类,对不对?它已经是China dupl handleer,它是一个类,它继承了inboundld handle adapter,那说明他就可以处理入站的事件,同时它还实现了China out boundunder接口,那说明它可以干什么呢?它可以处理出站。
06:11
因此我们说dupl其实就是复式复用的意思嘛,大家可以查一下它的英文。所以我们在这下个结论,他两者都可以处理,但是我要说的说这样一件事情,在我们实际开发中,在我们实际看中,尽量不要去使用duplx handler,为什么呢?因为也很容易造成我们对这个出战和入站事件。调度的混淆,因此同学们记住老师一句话,尽量不要使用这一个dupl handleer,当然如果说有些同学老师我就要用,当然你一定要用老师也没办法,对吧,就我们说尽量避免,因为他既可以处理出战,又可以又可以处理这个。呃,入战出战都能处理,那逻辑上有时候你。不太好控制。对。好,同学们,那关于这一块,我们所所说的China handler这块内容呢,先给大家聊到这里。
我来说两句