第七章 处理器 Handler
处理器处理所有由MINA触发的事件。处理器接口是过滤器链处理结束后的后续处理的核心。
IoHandler包含的方法如下:
- sessionCreated
- sessionOpened
- sessionClosed
- sessionIdle
- exceptionCaught
- messageReceived
- messageSent
7.1 sessionCreated 事件
会话创建事件是在一个新的连接被创建时触发的。对于TCP来说这个时间是在连接确认结果收到时,对于UDP而言,这个时间通常是在收到一个UDP的包的时候。这个方法可以被用来初始化会话属性,对于每个会话而言,这个方法仅被触发一次。
7.2 sessionOpened事件
会话打开事件在一个连接被打开时被调用。该方法通常在sessionCreated事件后被调用,假如配置了线程模型,这个方法可以在除了I/O处理器线程外的一个线程中被调用。
7.3 sessionClosed事件
会话关闭事件在一个会话被关闭时调用。可以在这个方法中做一些会话占用资源的释放工作。
7.4 sessionIdle事件
会话空闲事件。当一个会话的状态变为空闲时被调用。这个方法在UDP传送协议中不被调用。
7.5 exceptionCaught事件
这个方法在捕获到一个由用户代码或MINA抛出的异常后被调用,如果抛出的是一个IOException,那么连接将被关闭。
7.6 messageReceived事件
消息接收事件在一个消息被接收到时被触发。这个是一个应用中被处理的最多的事件,你需要在这个方法中处理好你所期望的所有消息类型。
7.7 messageSent事件
在通过IoSession.write()将消息作为回复发送时,会产生一个消息发送事件。