tigase深入理解xmpp服务器-源码总览
在Tigase栏目的第一篇中,有基于Iintellij IDEA搭建tigase源码环境的教程,本篇提供Tigase主线分析思路,细节方面建议读者自己使用IDEA进行研究
Tigase的启动入口,就是一个普通的类XMPPServer,组件从MessageRouter开始启动,ConnectionManager负责调度ConnectionOpenThread,SocketThread,这两个类是用NIO实现,负责监听端口,建立服务端与客户端连接,接受数据包。 SessionManager为tigase服务端存储数据。
XMPPServer.main()
Strat()中首先会加载两个组件分别为tigase.conf.Configurator,tigase.server.MessageRouter,所有的组件都是由MessageRouter加载,源码如下
MessageRouter.setConfig(config),主要任务就是加载服务所需要的其它组件,启动服务端socket,把组件按名字和对应的类型绑定到相关的变量里,为后面xmpp packet路由做准备;
// 执行子类ConfiguratorAbstract.componentAdded(组分); 进行组件设置,其实这就是组件启动的重要入口了
setup()设置组件的配置信息,一下为setup()中设置配置信息部分
MessageRouter.setProperties(),完成每个组件的初始化,initializationCompleted()该方法把初始化得到的配置信息加入相关的处理队列中,来启动服务端SOCKET监听事件操作等。