Openfire源码分析

Openfire源码分析-----本文来自百度文库

启动类:ServerStart,main方法调用start方法。

·加载类环境

·通过反射加载org.jivesoftware.openfire.XMPPServer类,并实例化。

 

XMPPServer类

构造方法:单例模式,调用start()方法。

Start方法:

         ·调用initialize()方法。读取openfire.xml文件,初始化。

         ·实例化XMPPServerInfoImpl对象

         ·根据插件目录,实例化PluginManager对象

         ·当前是否是安装模式,未安装,则需要绑定、测试数据库(verifyDataSource()方法),

加载运行环境所需类(loadModules()方法,实例化每个Module类,并放在modules(Map接口中)),初始化每个Module(依次从modules这个Map中拿出所有的Module实例,分别调用它们的initialize()方法,并将他们的Isinitialized改为true),启动Module,跟初始化一样,取出每个Module,调用他们的start()方法。

         ·初始化ServerTrafficCounter类。

         ·启动PluginManager的start()方法。(其中运用了多线程方法)

         ·启动所有的XMPPServer事件监听器。

         至此,结束。

 

·核心类

ConnectionManager

与服务器连接管理接口,实现类ConnectionManagerImpl。

提供到服务器Socket连接的设置操作方法。

 

ConnectionManagerImpl是ConnectionManager的实现类,也是继承BasicModule类的,在XMPPServer类的start()方法中的loadModules()方法时加载,startModule()时启动。

 

 

XMPPServerInfoImpl

保存XMPP服务器信息的实现类,包括连接,端口等。

 

DbConnectionManager 

数据库连接管理类,提供大量的静态方法获取数据库连接。例如:getConnection()等等。

 

ServerTrafficCounter

服务器流量计算类,用来计算服务器写入和读取的字节数,包括C-S,S-S或扩展的组件和连接的流量。

 

XMPPServerListener

服务器事件监听类,监听服务器的已经启动或即将停止事件,当然也可以通过addServerListener和removeServerListener添加和取消监听事件。

 

Module

模型接口,有initialize(),start(),destroy(),getName(),stop()五个方法。

 

 

BasicModule

继承Module,方法体基本为空,继承BasicModule后,应对其做方法覆盖。

 

以下就是openfire启动的时候,要运行的Module。

 

·RoutingTableImpl

RoutTable是用来存储各个终端之间的会话,一旦一个用户经过服务器的认证,他就会发起一次会话,最终会在Rout Table中插入一条记录。不管什么时候,用户变得可用或不可用,表中的数据都会及时更新。

 

·AuditManagerImpl

·RosterManager

·PrivateStorage

·PresenceManagerImpl

·SessionManager

·PacketRouterImpl

·IQRouter

·MessageRouter

·PresenceRouter

·MulticastRouter

·PacketTransporterImpl

·PacketDelivererImpl

·TransportHandler

·OfflineMessageStrategy

·OfflineMessageStore

·VCardManager

·IQBindHandler

·IQSessionEstablishmentHandler

·IQAuthHandler

·IQPingHandler

·IQPrivateHandler

·IQRegisterHandler

·IQRosterHandler

·IQTimeHandler

·IQvCardHandler

·IQVersionHandler

·IQLastActivityHandler

·PresenceSubscribeHandler

·PresenceUpdateHandler

·IQOfflineMessagesHandler

·IQPEPHandler

·IQPEPOwnerHandler

·MulticastDNSService

·IQSharedGroupHandler

·AdHocCommandHandler

·IQPrivacyHandler

·DefaultFileTransferManager

·FileTransferProxy

·MediaProxyService

·STUNService

·PubSubModule

·IQDiscoInfoHandler

·IQDiscoItemsHandler

·UpdateManager

·FlashCrossDomainHandler

·InternalComponentManager

·MultiUserChatManager

·ClearspaceManager

·ConnectionManagerImpl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值