参考原文链接 http://blog.sina.com.cn/s/blog_69f68f880102uyeg.html
一、xmpp是基于xml的协议。具有遵循标准,有安全性,使用TCP传的xml的流。
XMPP从下到上分四层,分别是TCP,TSL,SASL和XMPP层:
1.其中TCP保证了这是一个可靠的链路。
2.TSL主要采用STARTTLS加密算法保证传输数据的安全。
3.SASL用来认证客户端的真实有效性。
二、通过xmpp是如何实现即时通信的
1、首先客户端通过TCP连接服务器。
2、进行TLS握手。
3、SASL身份验证。
4、完成SASL验证之后,客户端重新初始化流,服务器向客户端声明资源绑定特性,客户端发起资源绑定请求,服务器相应请求,并且返回绑定后的完整的JID名。
5、在客户端的身份确认之后,客户端向服务端发送一个自身出席信息。服务器负责发送客户端的出席信息给客户端出席信息的订阅者。(我将其理解为X登录之后,服务器发送给X的好友说X上线了)
6、客户端向服务端请求客户端的花名册列表,服务端返回客户端的花名册列表。(好友列表)
7、客户端1向客户端2(在花名册中有这个Jid)发送消息,服务端返回由客户端2发给客户端1的消息。(发送消息给好友)
8、最后客户端和服务端分别发送一个关闭标签,关闭会话。
三、知识点
来源:https://www.cnblogs.com/antble/p/8948351.html