XMPP:体系架构:

Client,Server,Gateway.三个角色。

1,会话管理层,:卖力客户端会话认证。
在线状态,用户联系表等。

jsp网页即时通信AndroidXMPP即时通讯材料 Python

2,数据存储器(XDB):连接数据库系统,保持用户信息。
通信日志等。

3,连接器管理器:管理与客户端之间的链接。

4,做事器连接器:管理xmpp做事器之间的连接。

5,传输器:建立xmpp做事器与非xmpp做事器通信。

//--------------------------------------------

事情事理:

所有从一个Client到另一个client的jabber和数据都要通过xmpp server.

1,client连接到server。

2,server利用本地目录系统的证书对其认证。

3,client指定目标地址,让server奉告目标状态。

4,server查找,连接并进行相互认证。

5,client间进行交互。

//--------------------------------------------

XMPP:统一的JID地址:

格式:JID=[node\"大众@\"大众]domain[\"大众/\公众resource]

eg:lee@maiziedu.com/res

domain:做事器域名。

node:用户名。

resource:属于用户的位置或设备。

一个用户可以同时以多种资源与同一个XMPP做事器连接。

//--------------------------------------------

XMPP;xml格式定义:

xmpp:xml包括三个元素:

示例:

<stream>

<presence>

<status/>

</presence>

<message>

<body/>

</message>

<iq>

<bind/>

</iq>

</stream>

persence:确定当前用户的状态,在线,忙,下线。

message:封装用户之间的。

iq:信息/要求:是一个要求-相应机制。
管理xmpp做事器上两个用户的交流。
许可他们通过相应的xml格式的查询和相应。

iq:的属性包括:type:包括:

GET:获取当前域值。
SET:设置或者更换get查询的值。

Result:解释成功的相应了先前的查询。

Error:查询和相应中涌现的缺点。

//--------------------------------------------

XMPP:协议簇:XMPP,SASL,TLS,TCP.

XMPP采取SASL作为身份认证的协议。

SASL包含的信息:

<做事名>:XMPP

<初始化序列>

<交流序列>

<安全层协商>

顺序:[TCP]-->[TLS]-->[SASL]-->[XMPP].

//----------------------------------------------

Mina做事器对外供应的一些接口:

IoServer(卖力底层通讯接入)。
这个接口在一个线程上卖力套接字的建立。
拥有自己的Selector,监听是否有连接被建立。

IoAcceptor(相称于网络运用程序中的做事器端)

IoConnector(相称于客户端);

IoserviceListener(监听器);

IoProcessor(线程干系的接口);

Iosession(当前客户端到做事器真个一个连接实例)

IoSessionConfig(话的配置信息,紧张包括:读缓冲区大小,会话数据吞吐量,打算吞吐量的韶光间隔,指定会话段的空闲韶光,写要求操作超时时间)

IoFilter:过滤器紧张用于悬接通讯层接口与业务层接口。
这个接口定义一组拦截器,这些拦截器可以包括日志输出,黑名单过滤,数据的编码与解码等功能,个中数据的encode与decode是最为主要的也是你在利用Mina时最紧张关注的地方。

IoHandler(业务处理逻辑),这个接口卖力编写业务逻辑,也便是吸收,发送数据的地方。

Mina框架的运用分为三个模块:创建连接(Ioserver)---->添加过滤器(IoFilter)--->添加业务处理(IoHandler)。

mina官网:http://mina.apache.org/

//----------------------------------------------

OpenFire:

java措辞编写,基于XMPP协议,开源的实时协作的做事器,具有跨平台的能力。

基于可扩展的WEB掌握管理界面。
基于插件的开拓框架,高可扩展性。

稳定支持上万用户的并发操作。

Openfire与客户端采取的是C/S架构,一个做事器要卖力为连接在其上的客户端供应做事。

基于总线的设计办法,各个Module都是单例,利用者通过总线得到Module干系实例,所有的Module大致分为以下几类:

1,供应做事功能,

2,供应处理功能。

3,供应配置功能,

4,供应监听功能,

5,供应网络功能。

//------------------------------------------------

Smack是一个用于和XMPP做事器通信的类库,由此可以实现即时通讯谈天。

1,支持XEP-198规范,记流的管理。

2,原生支持Android。

3,Smack4.1可替代aSmack库。

改进:

1,XMPPConnection变更为接口。

2,重新实现了SASL的认证。

3.添加了IQ要求句柄。

4,XMPPConnection.addPacketListener方法被抛弃了。

5,StringUtils工具类。

6,监听器的变革。

7,连接配置ConnectionConfiguration类利用了Builder设计模式。

大略易用,并且有十分强大的API。

1,利用者不须要进行包级别的编码。

2,利用者不须要熟习XMPP XML格式。

3,供应了大略的设计以进行通讯。
许可在每个中设置任意数量的属性,包括java工具。

4,Apache容许下的开源类库。

5,Smack的唯一必要条件是JDK1.6或者更高版本。

官方文档:http://igniterealtime.org/projects/smack/index.jsp