`

IoSession

    博客分类:
  • mina
 
阅读更多

IoSession

代表两个端口之间无视传输类型的连接的处理类

提供用户定义的参数,用户定义参数是会话相关的应用特定数据。它通常包含代表高等级协议状态的对象也变成在filters和handlers之间交换数据的一种方式

 

<调整传输类型的具体属性>

你可以简单向下转型session对象成一个合适的子类

 

<线程安全>

IoSession是线程安全的,但请注意同一时间调用多个write()方法会造成IoFilter的filterWrite(IoFilter.NextFilter,IoSession,WriteRequest)同时执行,因此必须保证使用的IoFilter实现类是线程安全的

 

<Equality of Sessions>

getId()方法完全错误,我们不能基于hashCode方法来设计一种创造唯一id的方法,不应该重写Object的equals(Object)和hashCode()方法

 

AttributeKey

根据类名和属性名创建一个key,得到的key将会被存储在session Map中,比如可以这样创建一个‘processor’AttributeKey

private static final AttributeKey processor = new AttributeKey(SimpleIoProcessorPool.class,"processor");

这样就会创建一个存储在session map的key:“SimpleProcessorPool.processor@7DE45C99”

这样的attributeKey主要用于debug的目的

 

 

IoSessionAttributeMap接口

存储各自IoSession的用户定义属性,所有用户定义属性的收发都在IoSessionAttributeMap实例。该接口内部实现是ConcurrentHashMap,默认实现类是DefaultIoSessionDataStructureFactory的私有静态内部类DefaultIoSessionAttributeMap

 

分享到:
评论

相关推荐

    Mina框架入门介绍

    开发者可以通过IoSession接口的方法来管理连接,例如设置和获取用户属性,发送数据,关闭连接,获取远程客户端地址,查询会话的创建时间、最后IO活动时间和配置信息等。 `IoHandler`是Mina中的另一个重要组件,它...

    mina客户端简单代码示例

    2. **创建IoSession**:IoSession是Mina的核心概念,代表了客户端和服务器之间的会话。客户端需要初始化一个IoConnector来建立连接,并通过connect()方法创建IoSession。 3. **定义ProtocolCodecFilter**:为了进行...

    mina自定义编码器-自行做会话累积

    首先,我们需要理解Mina中的编码器接口`org.apache.mina.core.session.IoSession`。`IoSession`代表了客户端和服务器之间的一个连接,它包含了会话的状态信息,如读写计数、打开时间等。在自定义编码器时,我们需要...

    mima框架的一些基本属性

    `SessionConfig`是用于配置IoSession的重要接口,它提供了多种配置选项来调整网络连接的行为。例如: - `setSessionReceiveBufferSize(int size)`:设置接收缓冲区的大小。 - `setKeepAlive(boolean keepAlive)`:...

    Mina2.0快速入门与源码剖析

    IoAcceptor使用NIO模型来监听连接请求,并在接受到连接请求时创建一个新的IoSession对象来处理客户端的连接。 Mina2.0框架源码剖析(二) IoSession是Mina2.0框架中最重要的组件之一,负责对客户端的数据读写操作...

    mina框架调研

    - **IoFilterChain**: IoFilterChain是一个链式结构,用于管理多个IoFilter组件,这些组件可以对IoSession中的数据进行预处理和后处理。 - **IoFilters**: IoFilters是一系列过滤器,它们可以在数据到达IoHandler...

    mina test实例一个

    4. **Acceptor**: 服务器端的监听器,负责接收来自客户端的连接请求,并创建相应的 IoSession 实例。 5. **Handler**: 处理网络事件的接口,当数据到达或离开 IoSession 时,Handler 将被调用执行相应操作。 **...

    apache mina详细介绍,适合新手入门mina

    public void exceptionCaught(IoSession session, Throwable cause) throws Exception { cause.printStackTrace(); session.close(true); } @Override public void messageReceived(IoSession session, ...

    mina原理[定义].pdf

    读取和写入操作都通过 `IoSession` 进行,数据在 `IoFilterChain` 和 `Handler` 之间传递。 5. **Handler**:业务逻辑处理的核心,负责处理 `IoSession` 中的事件,包括读取和写入事件。当 `IoFilterChain` 处理完...

    apache mina 简单示例

    2. **IoSession**:IoSession是Mina的核心概念,它代表了客户端和服务端之间的一个连接。你可以通过IoSession进行数据读写、属性存储和事件监听。 3. **Filter Chain**:Mina使用过滤器链(Filter Chain)模式处理...

    mina demo

    2. IoSession:表示客户端和服务器之间的连接,它包含了连接的相关信息,如读写缓冲区、会话状态、事件触发器等。 3. IoHandler:处理I/O事件的核心接口,提供了对各种事件的回调方法,如连接建立、数据读写、连接...

    Mina 1.1.7核心代码(apache.mina.core)

    1. **IoSession**: 这是MINA中最基础的数据容器,代表了服务端与客户端之间的连接。IoSession存储了会话状态,如读写缓冲区、传输层连接信息以及事件监听器等。 2. **IoFilter**: 过滤器是MINA中实现数据处理和协议...

    mina双向通信已测试

    在Mina中,这一功能通过使用`IoSession`对象实现,`IoSession`代表了客户端和服务端之间的会话,可以用于读取和写入数据。当一方发送数据时,另一方可以通过监听`IoSession`上的事件来接收数据,并进行相应的处理。 ...

    MINA总结了

    `IoService` 是服务器端的`IoAcceptor` 和客户端的`IoConnector` 共享的接口,它提供了基础的I/O服务,包括管理`IoSession`、处理数据传输、管理过滤链、调用`Handler`、统计管理以及监听器管理。`IoService` 的具体...

    Mina长连接(Android客户端-Java服务器)简单应用

    public void messageReceived(IoSession session, Object message) { // 处理接收到的消息 } @Override public void sessionCreated(IoSession session) { // 连接创建时的处理 } } ``` 3. **客户端连接**...

    mina基础技术

    - `void messageReceived(IoSession session, Object message)`:接收到客户端消息时触发。 #### 三、MINA框架的高级特性 除了上述基本概念和技术外,MINA还提供了许多高级特性和功能,这些特性使开发者能够构建...

    mina学习资料与源码分析

    1. **IoSession**: IoSession是Mina中的核心对象,代表了服务端和客户端之间的会话。它负责管理数据传输、连接状态以及各种事件的触发。通过IoSession,你可以读取或写入数据,设置心跳机制,以及管理和控制连接。 ...

    mina源码走读与实例

    - **作用**:类似于Servlet Filter,`IoFilter`用于拦截`IoHandler`的事件,可以通过实现该接口将自己的过滤器添加到`IoService`的过滤链上,进而应用于所有`IoSession`。 **IoHandler接口** - **作用**:所有I/O...

    Mina通信框架应用示例

    public void messageReceived(IoSession session, Object message) throws Exception { // 处理接收的消息 // 并可能发送回应 session.write(message); } @Override public void sessionClosed(IoSession ...

Global site tag (gtag.js) - Google Analytics