OhNaNaSun / myapp

from todo
3 stars 0 forks source link

HTML5—WebSocket协议 #2

Open OhNaNaSun opened 8 years ago

OhNaNaSun commented 8 years ago

WebSocket 是什么原理?为什么可以实现持久连接?

首先Websocket是基于HTTP协议的,或者说借用了HTTP的协议来完成一部分握手。

ajax轮询

首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。

long poll

long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始

WebSocket

从上面可以看出其实这两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。 何为被动性呢,其实就是,服务端不能主动联系客户端,只能有客户端发起。'

使用WebSocket: 一旦WebSocket握手成功,服务器与客房端将会呈现对等的效果,都能接收和发送信息。