您的位置:首页 > 其它

XMPP与环信的简单介绍

2016-05-26 11:30 281 查看
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包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

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

连接建立后,客户端和服务器就可以开始进行数据传输了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: