client和server的连接: 叫session
Session State:
- Connected : the session has been created and is available
- Idle : the session hasn't processed any request for at least a period of time (this period is configurable)
- Idle for read : no read has actually been made for a period of time
- Idle for write : no write has actually been made for a period of time
- Idle for both : no read nor write for a period of time
- Closing : the session is being closed (the remaining messages are being flushed, cleaning up is not terminated)
- Closed : The session is now closed, nothing else can be done to revive it.
状态转换图:
![](http://mina.apache.org/chapter-4-session.data/session-state.png)
Session需要配置的参数:
Many different parameters can be set for a specific session :
- receive buffer size
- sending buffer size
- Idle time
- Write timeOut
Container
在session中,有一个container,可以放置key/value属性(是个map结构);
如果要用自己的container,譬如不用map,或者大尺寸value要放在磁盘上,要能够自己替换这个container
实现这个接口:
public interface IoSessionDataStructureFactory {
/**
* Returns an {@link IoSessionAttributeMap} which is going to be associated
* with the specified <tt>session</tt>. Please note that the returned
* implementation must be thread-safe.
*/
IoSessionAttributeMap getAttributeMap(IoSession session) throws Exception;
}
Filter chain
Handler