消息推送的原理:
使用HTTP的 【异步】 和 【非阻塞】的长连接的原理。
1. 客户端发出一个http长连接请求,然后等待服务器的响应。这个请求是异步的,所以客户端可以继续工作,比如发起其他ajax请求等等。这个时候客户端就是一个待推倒的小萝莉了。 2. 服务器接到请求之后,并不立即发送出数据,而是hold住这个connecton。这个处理是非阻塞的,所以服务器可以继续处理其他请求。 3. 在某个时刻,比如服务器有新数据了,服务器再主动把这个消息推送出去,即通过之前建立好的连接将数据推送给客户端。 4. 客户端收到返回。这个时候就可以处理数据,然后再次发起新的长连接。 |
具体的参见: