tigase
文章平均质量分 84
jianfulovee
这个作者很懒,什么都没留下…
展开
-
tigase源码分析1:启动
喜欢研究IM技术的同学们,欢迎加入群 310790965 一起来学习,有什么问题可以一起讨论。 本源码是基于tigase v7.0.0来分析的。启动类XMPPServer.main(..)为入口,tigase是基于组件的xmpp服务器,在XMPPServer.start(),首先会加载两个组件分别为tigase.conf.Configurator,tigase.ser...原创 2014-12-30 12:20:32 · 649 阅读 · 0 评论 -
tigase源码分析2:ConnectionOpenThread 处理服务端socket的线程
一、 ConnectionOpenThread 使用单例模式,他是负责建立服务端SOCKET和 接收连接客户端socket 线程。在初始化ConnectionManager的时候ConnectionManager.connectThread 属性所引用的服务端SOCKET连接线程ConnectionOpenThread 就被初始化了ConnectionMan...原创 2014-12-31 11:22:43 · 369 阅读 · 0 评论 -
tigase源码分析4:packet处理
这节主要讲数据包packet 的流转过程,如图大概说明packet被处理的流程,但实际上packet最终的处理者是插件,这个过程是在packet流转到SM中被分发到对它感兴趣的processor中处理的,下节将会详细说明packet被SM处理情况: 被处理的包packet,一旦被会话管理器和处理器插件(session manager and processor plugi...原创 2015-01-14 10:17:33 · 572 阅读 · 0 评论 -
tigase源码分析3:SocketThread
SocketThread 专用于处理客户端SOCKET的读写事件的线程,当服务器端SOCKET接受到客户socket,就会生成一个与对应的IOService,IOService.socketIO指向SocketIO对象,SocketIO是对java api中SocketChannel的封装,所以拿到IOService也就等于拿到客户端SocketChannel了。SocketThre...原创 2015-01-14 10:37:41 · 345 阅读 · 0 评论 -
tigase源码分析6:了解xmpp协议
<!-- 一、当一个初始化实体用TLS保护一个和接收实体之间的流,其步骤如下: --><!-- 1. 初始化实体打开一个TCP连接,发送一个打开的XML流头信息(其'version'属性设置为"1.0")给接收实体以初始化一个流。 --><?xml version="1.0"?><stream:stream xmlns:stream="h...原创 2015-01-16 15:51:58 · 508 阅读 · 0 评论 -
tigase源码分析5:SessionManager
这节主要是分析数据包packet是如何被SessionManager和插件处理的 ,首先分析一些开发的理论知识先: 一、 Tigase服务器插件开发重要的是要了解它是如何工作的。不同类型的插件负责处理数据流中不同阶段的数据包(packet)。在Tigase服务器中, 插件代码负责处理特定的XMPP节。一个单独的插件可能会负责处理<message>,另一个用于处理<...原创 2015-04-30 16:12:14 · 430 阅读 · 0 评论 -
tigase源码分析7:用户连接登录流程
//在看本节之前一定要先了解下xmpp协议,建议仔细看下 tigase源码分析6:了解xmpp协议//在看下面代码之前,要知道,每一个用户User通过某一资源连接到服务器时, //每一个User在不同的资源上登录都各对应着一个IOService, //每一个资源对应着一个XMPPResourceConnection, //同一个用户User多个XMPPResourceC...原创 2015-04-30 16:13:21 · 944 阅读 · 0 评论