tigase-IM服务器组成介绍(十八)

一、BOSH

BOSH (Bidirectional-streams Over Synchronous HTTP)是一种在客户端和服务器端之间通过HTTP的请求/响应进行客户端和服务器双向通信的技术,BOSH在XMPP系列规范中的XEP-0124中定义,应用场合为基于浏览器的客户端访问XMPP服务器。 下面的内容来自XEP-0124规范。http://www.xmpp.org/extensions/xep-0124.html http://shallon.iteye.com/blog/126428

二、tigase-auth sasl 开发例子

https://github.com/Smartupz/tigase-oauth

三、xmpp3个顶层XML元素: Message、Presence、IQ

Message 用于在两个jabber用户之间发送信息。Jsm(jabber会话管理器)负责满足所有的消息,不管目标用户的状态如何。如果用户在线jsm立即提交;否则jsm就存储。 To :标识消息的接收方。 from : 指发送方的名字或标示(id)o Text: 此元素包含了要提交给目标用户的信息Message 用于在两个jabber用户之间发送信息。Jsm(jabber会话管理器)负责满足所有的消息,不管目标用户的状态如何。如果用户在线jsm立即提交;否则jsm就存储。 To :标识消息的接收方。 from : 指发送方的名字或标示(id)o Text: 此元素包含了要提交给目标用户的信息

Presence

用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当用户离线或改变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明自身的状态.结构如下所示:

IQ

一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行响应.例如,client在stream的上下文中插入一个元素,向Server请求得到自己的好友列表,Server返回一个,里面是请求的结果. 主要的属性是type。包括: Get :获取当前域值。 Set :设置或替换get查询的值。 Result :说明成功的响应了先前的查询。 Error: 查询和响应中出现的错误。 http://www.baidu.com/#wd=xmpp%20message%E2%80%9D%EF%BC%8C%E2%80%9Cpresence%E2%80%9D%E5%92%8C%E2%80%9Ciq%E2%80%9D&tn=baidu&ie=utf-8&f=8&rsv_bp=1&rsv_sug3=3&rsv_sug4=50&rsv_sug1=1&rsv_n=2&inputT=593&rsv_sug=2&bs=xmpp&rsv_spt=3

XMPP通信原语有3种:message、presence和iq。

四、plugin and component

plugin是session manager的,是基于xmpp的标签来进行处理,

component处理,是被MessageRouter根据它的component jid 选择进行处理 sm c2s s2s sm - session manager component. c2s - client connection manager component s2s - server connection manager component ext2s - external component connection manager ssender - StanzaSender component

源码 tigase packet 的from jid 和to jid 和xmpp协议的jid是不一样的 domain vhost vitual host 集群 http://www.tigase.org/content/clustering-tigase-42

gc优化,参考注释 http://www.tigase.org/content/how-packets-are-processed-sm-and-plugins

I personally recommend to use concurrent Mark Sweep and incremental mode GC which runs GC in background whenever possible.

Configuration wizards

配置向导 http://www.tigase.org/node/173

离线消息处理 https://projects.tigase.org/projects/tigase-server/repository/entry/trunk/src/main/java/tigase/xmpp/impl/OfflineMessages.java

http://hi.baidu.com/bngoogle/archive/tag/tigase

https://projects.tigase.org/projects/message-archiving/wiki/Configuration


__EOF__

本文作者veblenJan°
本文链接https://www.cnblogs.com/veblen/p/14703967.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   venblenJan°  阅读(355)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示