XMPP与环信的简单介绍

XMPP是一种基于TCP和XML的即时通讯协议,存在网络层的长连接问题和数据层XML冗余的弊端。为解决这些问题,实践中通常采用环信进行即时通讯,它还支持第三方登录功能。TCP的三次握手确保了连接的建立,确保数据传输前的稳定连接状态。

XMPP --> 环信


1.XMPP是网络层基于TCP协议,数据层基于XML协议的即时通讯协议。所以要实现通讯的话,就要跟TCP一样,遵循3次握手,建立连接,持有一个长连接,连接期间发送消息,消息的格式就是XMPP,是一个流,可以分段发,别人也可以分段的将消息给我,在stream开始,/stream结束。



弊端

2.网络层:  TCP是一种长连接,因为在这个IP不固定的时代,用户锁屏,home,切换其他APP等都会导致自己的TCP连接断开,所以每次都需要再一次重新建立长连接。可以通过心跳轮循(每五秒钟向服务器问一次,每次通过短连接询问,可以用http的GET或者POST)的方式,服务器会告诉你是否有消息,如果有再用XMPP方式请求,请求完毕之后,再把TCP断开,继续心跳轮循。



3.数据层:XML数据体积比较大有冗余,造成不必要的流量浪费,但是没有办法解决。


所以在工作的时候,我们通常用环信来即时通讯,同时环信还集成了第三方登陆,实现登陆功能。



TCP三次握手协议

TCP三次握手

三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:

第一次握手:客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的synack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

三次握手客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

连接建立后,客户端和服务器就可以开始进行数据传输了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值