处理 MINA 所触发 I/O 事件。这一接口时在过滤器链最后完成的所有活动的中心。
IoHandler 具有以下方法:
- sessionCreated
- sessionOpened
- sessionClosed
- sessionIdle
- exceptionCaught
- messageReceived
- messageSent
sessionCreated 事件
会话建立事件在一个新的连接被创建时触发。对于 TCP 来说这是连接接受的结果,而对于 UDP 这个在接收到一个 UDP 包时产生。这一方法可以被用于初始化会话属性,并为一些特定连接执行一次性活动。
这个方法由 I/O 处理线程的环境中调用,因此应该以一个低耗时的方式实现,因为同一个线程要处理多个会话。
sessionOpened 事件
会话打开事件是在一个连接被打开时调用。它总是在 sessionCreated 事件之后调用。如果定义了一个线程模型,这一方法将在 I/O 处理线程之外的一个线程中调用。
sessionClosed 事件
会话关闭事件在会话被关闭时调用。会话清理活动比如支付清理可以在这里执行。
sessionIdle 事件
会话空闲时间在会话变为闲置状态时触发。这一方法并不为基于 UDP 的传输调用。
exceptionCaught 事件
这一方法在用户代码或者 MINA 抛异常时调用。如果是一个 IOException 异常的话当前连接将被关闭。
messageReceived 事件
消息接收事件在一个消息被接收到时触发。这是一个应用最常发生的处理。你需要关照到所有要碰到的消息类型。
messageSent 事件
消息发送事件在消息响应被发送 (调用 IoSession.write()) 时触发。
原文链接: http://mina.apache.org/mina-project/userguide/ch7-handler/ch7-handler.html。