WebSocket 是什么原理?如何实现消息实时推送?

目前要实现消息实时推送,有两种方法,一种是ajax轮询,由客户端不停地请求服务器端,查询有没有新消息,而后再由服务器返回结果;另一种就是long poll,经过一次请求,询问服务器有没有新消息更新,若是没有新消息时,会保持长链接,就一直不返回Response给客户端。直到有消息才返回,返回完以后,客户端再次创建链接,周而复始。这两种都是单向连接,须要被动的请求服务器,而不是由服务器自动发给客户端。php

从上面能够看出其实这两种方式,都是在不断地创建HTTP链接,而后等待服务端处理,能够体现HTTP协议的另一个特色,被动性。
何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起。
简单地说就是,服务器是一个很懒的冰箱(这是个梗)(不会、不能主动发起链接),可是上司有命令,若是有客户来,无论多么累都要好好接待。html

为了解决被动的问题,就出现了Websocket
有关Websocket的实现原理请参看下面的知乎文章:
WebSocket 是什么原理?为何能够实现持久链接?
PHP Socket 编程过程详解ajax

相关文章
相关标签/搜索