mina IoHandler 事件触发机制
1、sessionCreated
一个新的connection被建立时,会触发sessionCreated事件。对于TCP来说,这个事件代表连接的建立;对于UDP而言,它代表收到了一个UDP数据包。这个方法可以用作初始化session的各种属性,也可以用来在一个新建的connection上触发一些一次性的行为。I/O processor线程会调用这个方法,所以在实现该方法时,只加入一些耗时较少的操作,因为I/O processor线程是用来处理多会话的。
2、sessionOpened
当打开连接时,Session会话打开事件被调用。它总是在sessionCreated事件创建之后被调用。如果是一个已配置上网线程模型,那么这个方法会被I/O processor以外的线程调用。
3、sessionClosed
当Session关闭时,session会话的close事件被关闭。Session会话会清理活动,比如现场清理可以执行。
4、sessionIdle
当一个会话变得空闲时,触发会话空闲事件。这个函数不执行UDP传输。
5、exceptionCaught
当由用户代码或Mina抛出异常时,这个函数被调用。如果异常是一个IOException,则连接被关闭。
6、messageReceived
当接收到消息的时候会触发messageReceived事件。所有的业务处理代码应该写在这里,但要留心你所要的消息类型。
7、messageSent
无论何时,当消息已被远端接收到的时候(调用IoSession.write()发送消息),会触发messageSent事件。