1、WebSocked是个啥?
首先,WebSocked是html5搞出来的一种新的协议,所以和http没有什么联系,要说非要有联系就是他借用了http协议来完成一部分的握手,但它和http一样都是一种连接协议,建立在tcp协议之上,使用在应用层。
那么我们已经有了http协议为什么还要WebSocked呢?
因为WebSocked有一个最大的特点,就是服务器可以主动向客户端推送信息。而http协议只能做到客户端向服务器推送信息。
很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。
那么就很容易造成以下问题:
客户端:“有消息的话你叫我”
服务端:“好的”
//时间过了1s
客户端:“有消息了吗”
服务端:“没有”
//时间过了1s
客户端:“有消息了吗”
服务端:“没有”
//时间过了1s
客户端:“有消息了吗”
服务端:“没有”
//时间过了1s
客户端:“有消息了吗”
服务端:“。。。。”
这样的轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。
当使用了websocked就会好很多
客户端:“有消息的话你叫我”
服务端:“好的”
服务端:“来消息了”
服务端:“来消息了”</