openfire源码分析
二侠
这个作者很懒,什么都没留下…
展开
-
openfire源码分析---2
openfire源码分析—2XMPPServer构造函数 public XMPPServer() { // We may only have one instance of the server running on the JVM if (instance != null) { throw new IllegalStateExcepti原创 2015-10-22 20:37:23 · 1740 阅读 · 0 评论 -
openfire源码分析---3
openfire源码分析—3接着openfire源码分析2中的XMPPServer的start()函数,如下所示 ... if (!setupMode) { verifyDataSource(); // First load all the modules so that modules m原创 2015-10-26 20:36:32 · 1159 阅读 · 0 评论 -
openfire源码分析---1
OpenFire源码分析—1openfire 3.10是openfire最近更新的版本,下面就开始分析openfire源码openfire的3.10的源码在Eclipse展开后如下图所示(部分) main函数openfire的main函数有两个 /src/java/org/jivesoftware/openfire/launcher/Launcher.java /src/java/org/ji原创 2015-10-13 20:42:51 · 1151 阅读 · 0 评论 -
openfire源码分析---4
openfire源码分析—4openfire使用的是mina框架,关于mina框架的详细解析可以上网百度或者下载源码自行分析。这里转载一个mina的框架图, 如图所示,简单来说,IoService用于管理Socket的连接,IoFilterChain是一串过滤器,IoHandler用于业务逻辑处理。 下面来看ConnectionManagerImpl模块,由第三章的分析知道,每个模块被原创 2015-10-28 20:41:47 · 1428 阅读 · 0 评论 -
openfire源码分析---5
filter源码分析在上一章分析的createClientListeners函数中构造了3个filter,ExecutorFilter、ProtocolCodecFilter和StalledSessionsFilter并将它们添加到mina框架中,原创 2015-11-19 23:05:45 · 746 阅读 · 0 评论 -
openfire源码分析---6
openfire源码分析—6从上一章的分析可知,客户端发来的消息最后会经过ClientStanzaHandler,并调用其中的process函数,在该函数会根据消息头(XML标签)判断是io消息、presence消息还是message消息,然后调用相应的函数进行处理。本章主要分析message消息的处理,其对应的处理函数为processMessage,定义在ClientStanzaHandle原创 2015-11-24 22:22:08 · 668 阅读 · 0 评论 -
openfire源码分析---7
用户注册本章介绍openfire中的用户注册,客户端首先发起一个xmpp请求,如下所示iq id="#id" to="#serverName" type="get"> query xmlns="jabber:iq:register">query>iq>这里,#id和#serverName都是在上一章中创建的,该请求最终会到达ClientStanzaHandler的proc原创 2015-11-29 14:34:09 · 697 阅读 · 0 评论 -
openfire源码分析---8
登录本章分析用户的登录。第一个请求用户首先发送一个关于sasl验证的请求,auth mechanism="DIGEST-MD5" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">auth>根据前面几章的分析,用户的这条XMPP消息到达服务器后会经过层层处理,最后到达ClientStanzaHandler的process函数, pu原创 2015-11-30 21:24:40 · 601 阅读 · 0 评论