首先,我们知道,起初的http
协议只是为了能够进行通信而被创造出来(也就是请求-响应的过程)。并没有双向通信这一说,后面随着历史业务的需求,人们使用轮询http来解决双向通信也就是使用xhr
或者jsonp
的方法进行发送请求到服务端并且进行回调获取服务端数据
通信的三种传输模式:
单工通讯:既只能客户端向服务端发送数据或者服务端向客户端发送数据(如广播,电视之类的,他可以给你传播信息,你却不能给他回应)
半双工单向通讯:客户端可以向服务端发送数据,服务端也可以向客户端发送数据,但是不能同时,只能这一端发送完后另一端才可以进行响应(对讲机,他讲一句你讲一句,但是不能同时讲)
全双工通讯:客户端可以向服务端发送数据,服务端也可以向客户端发送数据,可以同时进行(电话,qq聊天等等,可以同时讲或者发送消息)
1:轮询:隔一段时间进行一次查询或者询问
轮询分为长轮询和短轮询,长轮询是基于短轮询的一个优化结果。
短轮询:
通过客户端定期轮询来询问服务端是否有新的信息产生,如果有则返回,没有就不响应,
缺点:也是显而易见,轮询间隔大了则信息不够实时,轮询间隔过小又会消耗过多的流量,增加服务器的负担。
长轮询:
是需要服务端进行更改来进行支持,客户端向服务端发送请求时,如果此时服务端没有新的信息产