MINA2官方教程翻译(6) 基本概念之IoHandler

简介

Handler用来处理MINA触发的I/O事件。IoHandler是一个核心接口,它定义了Filter链末端需要的所有行为。IoHandler接口包含以下方法:

  • sessionCreated
  • sessionOpened
  • sessionClosed
  • sessionIdle
  • exceptionCaught
  • messageReceived
  • messageSent

sessionCreated事件

一个新的connection被创建时,会触发SessionCreated事件。对于TCP来说,这个事件代表连接的建立;对于UDP来说,它代表收到了一个UDP数据包。这个方法可以用作初始化session的各种属性,也可以用来在一个新建的connection上触发一些一次性的行为。

I/O processor线程会调用这个方法,所以在实现该方法时,只加入一些耗时较少的操作,因为I/O processor线程是用来处理多会话的。

 

sessionOpened事件

当一个connection打开时会触发sessionOpened事件,这个事件永远在sessionCreated之后触发。如果配置了线程模式,那么这个方法会被非I/O processor线程调用。

 

sessionClosed事件

当一个session关闭的时候会触发sessionClosed事件。可以将session的清理操作放在这个方法里进行。

 

sessionIdle事件

当一个session空闲的时候会触发sessionIdle事件。当使用UDP时该方法将不会被调用。

 

exceptionCaught事件

当用户代码或MINA框架抛出异常时,会触发事件事件。如果该异常是一个IOException,那么connection会被关闭。

 

messageReceived事件

当接收到消息的时候会触发messageReceived事件。所有的业务处理代码应该写在这里,但要留心你所要的消息类型。

 

messageSent事件

当消息已被远端接收到的时候,会触发messageSent事件(调用IoSession.write()发送消息)。

 

 

你可能感兴趣的:(多线程,框架,Mina)