MIna框架I/O Filter Chain层设计

  • 时间:
  • 浏览:0

后面 设置了一个多多IoFilter,关键是看可能性基于文本行的消息,使用一个多多ProtocolCodecFilter包裹 了一TextLineCodecFactory类的实例,使用起来非常容易。

构造一个多多ProtocolCodecFilter实例,还并能实现一个多多ProtocolCodecFactory实例,一个多多ProtocolCodecFactory含高了对消息进行编解码(Codec)的逻辑,原本实现的好处是将编解码的逻辑和IoFilter解耦合。下面看一下类图:

下面通过一个多多例子来说明,怎么才能 才能 使用IoFilter的实现类。

基本上就构造法律最好的最好的办法参数中指定的一个多参数与压缩/解压缩相关:

通过上述类图可见,要实现一个多多自定义的IoFilter,一般是直接实现IoFilterAdapter类。一同,Mina也给出了几类常用的开发IoFilter的实现类,如下所示:

要我实现一个多多自定义的IoFilter实现类,只还并能基于上述给出的哪几个实现类即可。

可能性要我实现本人的IoFilter,可不还并能参考如下例子:

CompressionFilter

CompressionFilter是与压缩/解压缩数据相关的IoFilter,大伙可不还并能看一下该类的构造法律最好的最好的办法,如下所示:

DefaultIoFilterChainBuilder

Mina自带的DefaultIoFilterChainBuilder可不还并能非常容易就可不还并能构建一个多多Filter Chain,默认在创建IoAcceptor和IoConnector的已经 ,可不还并能直接通过大伙获取到一个多多DefaultIoFilterChainBuilder的实例,有些调用add*法律最好的最好的办法设置IoFilter链,如下面代码中示例:

LoggingFilter

可能性还并能记录通信过程中的事件以及请求,则可不还并能直接使用LoggingFilter类,使用法律最好的最好的办法可不还并能参考后面 的例子。

下面看一下来自Mina官网的表格,Mina框架也给出了有些典型的IoFilter的实现,引用如下所示:

使用的已经 也比较简单,只还并能创建一个多多CompressionFilter实例,加入到Filter Chain中即可。

ProtocolCodecFilter

下面是Mina自带的例子,使用了ProtocolCodecFilter类: