摘要: 总述 SocketThread类是一个很底层的类,在初始化时调用了Selector.open(clientsSel)。 socketReadThread nThread个 socketWriteThread nThread个 ResultsListener nThread个 completionSe 阅读全文
posted @ 2021-04-26 11:36 venblenJan° 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一、BOSH BOSH (Bidirectional-streams Over Synchronous HTTP)是一种在客户端和服务器端之间通过HTTP的请求/响应进行客户端和服务器双向通信的技术,BOSH在XMPP系列规范中的XEP-0124中定义,应用场合为基于浏览器的客户端访问XMPP服务器 阅读全文
posted @ 2021-04-26 11:35 venblenJan° 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 一、配置: igase-message-archiving源码也有的,工程导进去就可以,init.properties的加配置, --comp-name-2=message-archive --comp-class-2=tigase.archive.MessageArchiveComponent m 阅读全文
posted @ 2021-04-26 11:28 venblenJan° 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 加载配置文件,运行的时候选择的主类是XMPPServer。打开XMPPServer的main函数入口,直接上源码进行分析: /** * * @param args 表示program argument */ @SuppressWarnings("PMD") public static void ma 阅读全文
posted @ 2021-04-26 11:25 venblenJan° 阅读(227) 评论(0) 推荐(0) 编辑
摘要: Tigase输出从客户端和服务器的请求应答日志 客户端和服务器之间的通讯开始 打印日志的最佳位置在tigase.net.IOService,IOService中有两个重要方法: protectedvoidwriteData(finalString data) { // 这个方法里面的代码需要极小调整 阅读全文
posted @ 2021-04-26 11:21 venblenJan° 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 前言 在提及代码前,对Tigase的一些重要概念做一些讲解。逻辑上,所有的tigase代码分为三个部分: Components,tigase中最重要的东西。拥有独立的地址,可以发送和接收节。可配置,并且可响应各种各样的事件。tigase中主要的组件包括,c2s连接管理器,s2s连接管理器,会话管理器 阅读全文
posted @ 2021-04-26 11:19 venblenJan° 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 一、Tigase数据库有很多张表,其中最主要的是3张表:tig_users,tig_nodes和tig_pairs。 #tig_users tig_users存储用户信息,有uid(主键,用户ID),user_id(用户名),usr_pw(用户密码)等字段。 1.1 tig_users表 这个表定义 阅读全文
posted @ 2021-04-26 11:17 venblenJan° 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 一、理解插件是如何工作的对开发插件是非常重要的,在不同的场景下由不同类型的插件来负责处理packet。 IQ的意思是Info/Query:它是一种请求和应答机制,和http有一些类似的地方。 IQ的语意允许一个实体向另一个实体发送请求,并从另一个实体获取应答。请求和应答当中的数据在IQ元素的第一级子 阅读全文
posted @ 2021-04-26 11:16 venblenJan° 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 这里我们选择mysql数据库,然后各种配置,最后使用spark进行调试。说简单也简单,但是还是做下笔记吧。毕竟人老了。记忆里不如当年。 环境搭建 源码下载 从Tigase官网下载Tigase源码,可以选择git和https的方式,如: git clone git://repository.tigas 阅读全文
posted @ 2021-04-26 11:11 venblenJan° 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 一、组件 tigase就是一个大组件框,里面所有东西基本都是组件组成的。session manager、message router、c2s connection manager…全部是组件。 ServerComponent接口是一个最小化接口,但是要去写很多代码,tigase提供了许多的现成的代码 阅读全文
posted @ 2021-04-26 10:59 venblenJan° 阅读(336) 评论(0) 推荐(0) 编辑
摘要: Packet过滤API Tigase为所有组件都提供了一个packet过滤API。你可以分别过滤传入和传出packet。 通过学习过滤,我们可以知道如何对packet进行拦截,如何修改packet内容,如何彻底得屏蔽packet。通过屏蔽,我们可以让packet跳过后续的处理过程,也可以彻底抛弃它。 阅读全文
posted @ 2021-04-26 10:54 venblenJan° 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、创建默认的配置文件,包含在配置组件包括:会话管理器,客户端 - 服务器连接管理器和服务器到服务器的连接管理器。 config-type gen-config-def 2、配置管理员账号 --admins=admin@192.168.0.42 3、配置域名 --virt-hosts = 192.1 阅读全文
posted @ 2021-04-26 10:53 venblenJan° 阅读(427) 评论(0) 推荐(0) 编辑
摘要: tigase用户密码加密 call TigPutDBProperty('password-encoding', 'MD5-PASSWORD'); 阅读全文
posted @ 2021-04-26 10:50 venblenJan° 阅读(199) 评论(0) 推荐(0) 编辑
摘要: tigase用户集成原 ##tigase-custom用户认证 需要处理:只需通过init.properties,配置用户数据库和对应的sql语句(或者存储过程) 缺点:很多业务系统都服务化,包括用户系统,直接sql访问有违服务化目的,也不易做进一步处理; 官方教程:http://www.tigas 阅读全文
posted @ 2021-04-26 10:49 venblenJan° 阅读(218) 评论(0) 推荐(0) 编辑
摘要: tigase离线消息存储的条数配置 发现tigse的离线消息只会存储100条,tigase.server.amp.MsgRepository类有个store-limit的限制;最终限制发现amp的插件可以配置, 配置方法: init.properties添加配置 sess-man/plugins-c 阅读全文
posted @ 2021-04-26 10:46 venblenJan° 阅读(166) 评论(0) 推荐(0) 编辑
摘要: tigase启动的默认组件禁用和自定义类配置 禁用bosh,配置init.properties加入 默认组件有DEF_MSG_RECEIVERS_NAMES_PROP_VAL:[bosh, c2s, monitor, s2s, sess-man] message-router/components/ 阅读全文
posted @ 2021-04-26 10:45 venblenJan° 阅读(119) 评论(0) 推荐(0) 编辑
摘要: tigase的每个连接消息量限制配置 现象: 一个客户端一次循环发送了10000多条;tigase会断线,断线一段时间后,客户端自动重连; 每个连接限制值: tigase.server.ConnectionManager里有很多限制值,跟其中有2个限制值有关; last_minute_packets 阅读全文
posted @ 2021-04-26 10:43 venblenJan° 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、Tigase Component 组件 一、创建自己的组件需要实现的接口 1、tigase.server.ServerComponent 所有的component都必须实现接口中定义的方法 /** * Interface ServerComponent * 这种类型的对象可以被MessageRo 阅读全文
posted @ 2021-04-26 10:39 venblenJan° 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.启动 入口:XMPPServer.start(),关键源码如下: config = (ConfiguratorAbstract) Class.forName ( config_class_name ).newInstance(); config.init( args ); // config = 阅读全文
posted @ 2021-04-26 10:34 venblenJan° 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1 RDB持久化 RDB持久化就是每隔一段时间把内存中的数据全量记录下来。RDB持久化并不能频繁的进行,因为RDB文件生成的过程虽然是由fork出来的子进程完成的,但是fork本身是有性能的开销的。 RDB的优点: 体积更小:相同的数据量RDB文件数据比AOF的小,因为RDB是紧凑型文件 恢复更快: 阅读全文
posted @ 2021-04-26 10:18 venblenJan° 阅读(384) 评论(0) 推荐(0) 编辑