IoSession其实在我看来就是一个用于handler和filter之间共享或是传递数据的一个对象。它是线程安全的。 作为数据共享,它存储了以下几种数据:
IoService getService(); //其实就是connector或者acceptor
IoSessionConfig getConfig();//存放一些关于这个Session的配置信息,如buffer的大小,以及一些统计信息等。
IoFilterChain getFilterChain() //影响这个Session的IoFilter链 比如日志啊 对象序列化工厂,甚至自己配置的业务线程池等
WriteRequestQueue getWriteRequestQueue(); //存放的是这个Session的写请求,每一个请求里面存放了要传递的消息内容,每一个请求的writeFuture、是否encode等信息。
TransportMetadata getTransportMetadata();//存放了一些传输的元数据信息,这些元数据包括:服务名称,传输的是arp还是nio类型,是否支持底层协议(比如Ip)分段传送,传输的协议有没有状态等等。
还有其他的就是你通过一个属性map去设置一些自己的业务数据以及一些IoFuture的数据。
针对这些数据,可以具体看一下IoSession的实现类:AbstractIoSession,具体源码这里就不再列出。
分享到:
相关推荐
**Mina入门:Mina版之HelloWorld** Apache Mina是一个开源项目,它提供了一个高度模块化、高性能的网络通信框架。Mina旨在简化网络应用的开发,支持多种传输协议,如TCP、UDP、HTTP、FTP等。在这个“Mina入门:Mina...
Mina提供了一种事件驱动的模型,通过IoSession接口来管理连接,包括读写数据、添加监听器、关闭连接等操作。IoSession是连接状态的容器,包含了会话中的所有信息,如远程地址、本地地址、缓冲区大小、已发送和接收的...
在Mina框架中,`IoSession`扮演着关键角色。IoSession代表了服务器和客户端之间的特定连接,包含了客户端的地址和端口信息,以及服务器的地址和端口信息。每个IoSession都是独立的,允许服务器区分不同客户端的请求...
《Mina开发之客户端详解》 Apache Mina(Minimum Asynchronous Network)是一个高度可扩展的、高性能的网络应用框架,主要用于构建服务器端的网络应用程序。它简化了网络编程的复杂性,提供了基于事件驱动和异步I/O...
2. **创建IoSession**:IoSession是Mina的核心概念,代表了客户端和服务器之间的会话。客户端需要初始化一个IoConnector来建立连接,并通过connect()方法创建IoSession。 3. **定义ProtocolCodecFilter**:为了进行...
Apache Mina是一个开源的网络通信应用框架,主要应用于Java平台,它为高性能、高可用性的网络应用程序提供了基础架构。在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理...
1. **Filter Chain**:Mina的核心设计模式之一是过滤器链。每个连接都有一系列过滤器,它们按照顺序处理入站和出站事件。过滤器可以实现特定功能,如数据编码解码、安全验证、性能监控等。 2. **Session**:Session...
3. **网络传输**: 过滤后的字节数组通过Mina的`IoSession`发送到远程端点。`IoSession.write(Object)`方法用于写入数据。 4. **对象反序列化**: 在接收端,数据经过反序列化过程,恢复为原始的Java对象。这同样需要`...
Mina的核心组件包括IoSession(会话),管理连接状态和传输数据;IoFilter(过滤器),用于数据的预处理和后处理;IoHandler(处理器),处理实际的业务逻辑。通过Mina,开发者可以快速构建出可扩展、高性能的网络...
**mina自定义编解码器详解** mina是一个Java开发的网络通信框架,广泛应用于TCP和UDP协议的服务器和客户端开发。在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节...
Mina.jar可能包含了Mina的核心组件,如IoSession接口,IoFilterChain,以及各种I/O处理器等。此外,它可能还包含了支持不同协议(如TCP,UDP)的处理器,以及各种I/O事件的监听器。 在压缩包子文件的文件名称列表中...
Mina中的IoSession对象是连接管理的核心,它维护了客户端和服务器之间的会话状态,包括收发数据的缓冲区、连接属性等。而Message对象则封装了实际传输的数据,可以通过IoSession进行发送和接收。 5. **事件驱动...
1. **IoSession**:IoSession是MINA中的核心组件,代表了服务端和客户端之间的连接。它包含了会话的状态信息,如输入和输出缓冲区、读写事件、连接和断开时间等。IoSession还提供了数据传输的方法,如write()用于...
Mina开发之服务器的代码,详情请查看:http://www.cnblogs.com/getherBlog/p/3937196.html Mina开发之客户端的代码,详情请查看:http://www.cnblogs.com/getherBlog/p/3937196.html
Apache Mina是一个强大的网络通信框架,专为基于TCP/IP和UDP/IP协议栈的应用设计。它提供了JAVA对象的序列化和虚拟机内部通信的功能,使得开发者能够迅速构建高性能、高可扩展性的网络应用。Mina的核心特性是其事件...
**Spring Boot 整合Mina实现串口通信详解** 在Java开发中,有时我们需要与硬件设备进行串口通信,例如读取传感器数据或控制工业设备。Spring Boot作为一款轻量级的框架,使得快速构建应用变得简单。而Mina则是一款...
3. **事件驱动**:MINA的事件模型基于IoSession对象,当网络事件发生时(如连接建立、数据接收、连接关闭等),会触发相应的事件处理器。 4. **过滤器链**:MINA引入了过滤器的概念,数据在传输过程中会经过一系列...
6. **会话管理**:Mina中的IoSession对象代表了服务端和客户端之间的连接会话,提供了管理连接状态、传输数据和配置会话属性的能力。 7. **数据传输**:在示例中,我们可以看到如何使用WriteFuture和ReadFuture来...
1. **IoSession**:MINA 中的核心概念,它代表了服务端与客户端之间的一个连接。IoSession 存储了连接状态,包括读写事件、缓冲区、过滤器链等信息。 2. **FilterChain**:MINA 使用过滤器链模型来处理网络通信中的...
1. **了解MINA架构**:熟悉MINA的IoSession、IoFilter、IoHandler等核心组件及其职责。 2. **分析源码**:通过阅读MINA的源码,了解其内部处理流程,如读写事件的处理、过滤器链的工作方式等。 3. **编写简单的应用*...