mina服务器端架构
从根本上说,服务器端监听一个端口以获得接入的请求,将其进行处理然后发送回复。服务器端还会为每个客户端(无论基于tcp,还是udp协议的)创建并维护一个session。
1.I/O Acceptor监听网络以获取连入的连接或者包。
2.对于一个新的连接,一个新的session会被创建,之后所有来自该ip地址/端口号组合的请求就会在同一session中处理。
3.在一个session中接收到的所有包,将从上图network开始,经过filter chain(过滤器链)传递到I/O Handler中。过滤器可以被用来修正包的内容(比如转换唯对象,添加或者删除信息等等)。对于从原始字到高层对象的相互转换,PackageEncodeer/Decoder相当有用。
4.包或转化来的对象最终交给IOHander,IOHander可以用于实现具体业务需求。
创建session
只要一个客户端连接到mina服务器端,我们就要创建一个新的session以存放持久化数据,即使协议没有连接上,也要创建一个session。
假定session被创建,新传入的消息导致一个seletor被唤醒。
参考《apache mina2用户指南》
居然看到原始译文地址:http://blog.csdn.net/defonds/article/details/17996123