简介
转载:http://picasso-di.iteye.com/blog/657174
Handler用来处理MINA触发的I/O事件。IoHandler是一个核心接口,它定义了Filter链末端需要的所有行为。IoHandler接口包含以下方法:
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()发送消息)。
分享到:
相关推荐
3. **IoHandler**:IoHandler是处理网络事件的主要接口,如连接建立、数据接收、连接关闭等。你可以实现这个接口来定义你的业务逻辑。 4. **ProtocolCodec**:为了处理不同协议的数据编码和解码,Mina提供了...
`IoHandler`是Mina中的另一个重要组件,它负责处理客户端的事件。当接收到客户端的数据或发生特定事件时,IoHandler会被调用执行相应的逻辑。例如,`messageReceived()`方法用于处理接收到的数据,而`exception...
Mina采用事件驱动模型,当网络事件发生时(如连接建立、数据读写、断开连接等),会触发对应的IoHandler事件方法。开发者只需实现这些方法,即可实现自定义的业务逻辑。 6. **性能优化** Mina的非阻塞I/O特性使其...
Mina基于事件驱动模型,通过I/O事件处理器(IoHandler)来处理各种网络事件,如连接建立、数据读取、数据写入和断开连接等。开发者需要实现IoHandler接口,定义相应事件的处理方法。 4. **mina核心组件** - **...
- **事件处理**:Mina使用事件驱动模型,如`messageReceived()`、`sessionCreated()`、`sessionClosed()`等方法会在相应事件发生时被调用,开发者可以在这些方法中编写业务逻辑。 通过学习这个**Mina客户端服务器...
Mina基于事件驱动模型,通信过程中的各种状态变化(如连接建立、数据收发、连接关闭、空闲检测等)都会触发相应的事件。这些事件包括:sessionCreated(连接创建)、sessionOpened(连接打开)、messageReceived...
这些事件由`IoHandler`接口处理,开发者可以自定义`IoHandler`来实现业务逻辑。例如,当接收到新连接时,`sessionCreated()`方法会被调用;数据到达时,`messageReceived()`方法负责处理;当连接断开时,`session...
Mina的核心特性是其事件驱动、异步(基于Java NIO)的编程模型,使得处理网络通信变得更加高效。 Mina分为1.x和2.x两个主要分支,推荐使用最新的2.0版本。框架中包含了Server和Client的封装,简化了网络通信结构。...
MINA(Java Multicast Network Application Programming Interface)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发服务器端和客户端的TCP、UDP以及SSL/TLS协议应用。在本案例中,我们将聚焦于...
IoHandler是处理网络事件的核心接口,它定义了接收到数据、连接建立、连接关闭等事件时需要执行的方法。IoFilter则是一个过滤器链,允许在数据传输到IoHandler之前对其进行预处理或在之后进行后处理。通过IoFilter,...
此外,MINA支持事件驱动模型,通过`IoEventType`枚举定义了各种事件类型,如`SESSION_CREATED`、`MESSAGE_RECEIVED`等。开发者可以通过注册事件监听器来响应这些事件,实现更复杂的逻辑。 总之,"MinaDemo"是一个...
Mina采用事件驱动模型,当网络事件发生时,如数据接收、连接建立或关闭等,都会触发相应的事件处理器。开发者可以通过实现IoHandler接口来定义这些事件的处理逻辑。 四、Mina的开发步骤 1. 创建IoAcceptor或...
例如,`IoSession`接口用于管理客户端和服务器之间的会话,`IoHandler`接口处理网络事件,`Buffer`类用于读写数据。 6. **性能优化**:MINA 针对Java NIO进行了优化,提供了内存池、零拷贝等技术,进一步提升了性能...
6. **Event-driven模型**: MINA基于事件驱动模型,当网络事件发生时,如数据到达或连接建立,MINA会触发相应的事件回调。 7. **缓冲区操作**: MINA使用NIO的ByteBuffer,提供了高效的数据读写操作。理解如何有效地...
通过其核心组件 IoSession、FilterChain 和 IoHandler,可以灵活处理各种网络事件和协议,满足各种复杂的网络编程需求。在实际项目中,结合 MINA 的特点和优势,可以有效地提高开发效率并降低维护成本。
MINA提供了异步的、事件驱动的网络应用编程接口(API),适用于TCP和UDP协议,简化了网络编程的工作。在这个"apache-mina源码"中,我们可以深入理解MINA的设计原理和实现细节。 MINA的核心概念包括: 1. **...
- **关键类和接口**:如IoAcceptor用于监听和接受连接,IoHandler处理网络事件,IoFilter接口定义了过滤器行为,IoSession代表网络连接。 - **配置文件**:可能包含配置服务器端口、线程池大小等信息的XML配置文件。...
深入理解Apache_Mina_(3)----_与IoHandler相关的几个类 深入理解Apache_Mina_(4)----_IoFilter和IoHandler的区别和联系 深入理解Apache_Mina_(5)----_配置Mina的线程模型 深入理解Apache_Mina_(6)----_Java_Nio_...
4. **编写IoHandler**:IoHandler是Mina的核心组件,负责处理网络连接的建立、数据的读写以及连接的关闭等事件。在这个项目中,IoHandler应该能够解析从HTTP接口接收到的客户端消息,并作出响应。 5. **消息处理**...