IoSession

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值