IOSession的作用:
1.管理连接。注意,这里的管理连接并不是直接去控制我们上次讲的最底层的连接acceptor 和 connector 。如果 acceptor 和 connector 建立的一条管道,那 session 就是在管道内的管理者,他是没有办法将管道对半拆分开的,他只能从内部阻断两边的通信。管理连接还有部分就是可以配置缓冲区的大小,闲置时间等等
2.存储信息。和 web 里的 session 一样,这里的 session 也有存储 attribute 的功能,不过一般来说,这里存储的都是和连接有关的东西,并不会像 web 开发一样存一些业务上的东西。
3.消息读写session.read(), session.write()
4.统计功能。 Session 还记录了连接中的 byte 、 message 等数量。
IOSession的状态:
IOSession的方法:
红色:得到一系列配置等。我们说了session是mina的核心。
蓝色:驱动读写操作。
绿色:管理连接。
黑色:存储功能。
橘色:统计数据。
有些没有框上的并不是说不属于这里面,而是有些我确实不了解,有些是比较难划分,具体的含义可以看源码中,都有说明。