tigase服务与源码分析(十四)
前言
在提及代码前,对Tigase的一些重要概念做一些讲解。逻辑上,所有的tigase代码分为三个部分:
Components
,tigase中最重要的东西。拥有独立的地址,可以发送和接收节。可配置,并且可响应各种各样的事件。tigase中主要的组件包括,c2s连接管理器,s2s连接管理器,会话管理器,XEP-0114拓展组件连接组件管理器,MUC等等。plugin
,插件,用于响应处理的xmpp节。没有独立的地址,插件被组件加载,比如VCard,jabber:iq:register,认证等等。Connectors
,连接器用于访问数据信息,比如数据库,LDAP,用于存储和保存用户数据。有两种类型的连接器,包括认证连接器,用户数据连接器。
Components
-
tigase.server.ServerComponent
,这是一个最基本的组件和接口。所有的组件都必须实现它。 -
tigase.server.MessageReceiver
,实现这个接口可以实现类似c2s管理器和会话管理器接受数据包的功能。 -
tigase.conf.Configurable
,组件实现这个接口之后可以实现运行时可配置化。 -
tigase.disco.XMPPService
,对象可以用这个接口来响应ServiceDiscovery
请求。 -
tigase.stats.StatisticsContainer
,对象可以使用这个接口来实现运行时统计的功能。 -
tigase.server.AbstractMessageReceiver
,实现了一下四个接口。ServerComponent
,MessageReceiver
,Configurable
andStatisticsContainer
。它拥有内部队列管理和防死锁的功能。而且必须实现以下两个方法: -
tigase.server.ConnectionManager
,它继承自AbstractMessageReceiver
,这个类实现网络连接管理工作,如果你的功能需要实现数据包的接受和发送,你应该实现基类。有关一下两个方法:
插件
所有的插件的定义和实现被放在tigase.xmpp下,其中包括三种类型的插件:
XMPPProcessorIfc
,他是最重要,也是最基本的插件。接收到数据包,处理后返回。XMPPPreprocessorIfc
,对数据包进行预处理。XMPPPostprocessorIfc
,当数据包发送成功后,在进行一些别的操作。
Connector
从网络,IO下接受到二进制数据,经过tigase.io
-->tigase.net
-->tigase.xml
重点内容提到这儿就差不多了。
Tigase运行流程
忙着呢。这部分先不管。
Tigase Http Api配置和开发
基本配置
通过配置上面的代码来加载http组建。
默认的配置组建将尝试 在8080端口上启动独立的Jetty HTTP Server。并且添加默认启动模块,包括RestModule,RestModule将从/rest
目录下添加REST API到上下文中。默认情况下,RestModule将会加载位于scripts/rest/xxx
的所有groovy脚本。绑定对应的/rest/api
。
注意事项:位于src/scripts/groovy/tigase/rest
的HTTP脚本都可用。
属性配置
下面有一些支持从init.properties
中添加的属性:
- http/ports[i] -
- http/xxx/socket=ssl -
- http/xxx/domain -
- http/server-class -
__EOF__
本文链接:https://www.cnblogs.com/veblen/p/14703878.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!