一般客户端向服务器发送请求后服务器会回应响应。但服务器不会主动向客户端发送请求。响应式的方式可以解决此类问题。当然传统的方式也可以达到相同的效果比如:轮询、http长连接。
方式
实现
说明
轮询
js ajax定时轮询
每次轮询都是一对request+response,消耗资源、不实时
http长连接
keep-alived
http每次请求均是一对request+response,keep-alived类似把多个request放在同一个连接发送,当然每个request都会有自己对应的response,实际上也是多次的请求与响应,且keep-alived本身是不可控的
comet
comet http长连接的另一种方式,类似hack的方式,但实际上还是发送一个request连接,服务器不是立即返回,等到服务器有相应的结果再返回。这个连接不能被重复使用
websocket
websocket协议
websocket类似tcp是全双工通信,在协议本身上(请求头、二进制帧)网络开销更小、速度更快、更及时。
附