http:超文本传输协议,它的底层就是通过socket建立连接通信管道,他属于socket层上协议,属于应用层的协议,格式类似于json,有content-type,body等。
XMPP协议:即时通讯协议,同http一样属于应用层协议,格式为xml,环信就是基于xmpp进行的二次开发。
在这里附上tcp和udp的概念
tcp和udp都属于传输层协议,他和http、xmpp等的区别在于,tcp和udp是描述该协议的传输方式,比如是否要建立连接等,而http则表示在该协议下进行数据传送时的数据格式。
那么什么是socket,所谓socket就是套接字,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
通信管道建立的时候也就是socket连接的时候。
首先由客户端发起请求,服务端会时刻处于监听状态,当客户端将请求发送到服务端时,服务端将判断该请求是否正常,若请求正常则会建立连接,开启数据传输,具体可以参阅上图。