您可以阅读本文档,了解Websocket的定义、优势及使用场景。

什么是Websocket

Websocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信,即允许服务器主动发送信息给客户端。因此,在Websocket中,浏览器和服务器只需要完成一次握手,两者之间就可以直接创建持久性的连接,并进行双向数据传输。客户端和服务器之间的数据交换变得更加简单。

Websocket的优势

目前,很多网站为了实现推送技术,所用的技术都是Ajax轮询。轮询是在特定的时间间隔(例如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。

这种传统的模式有一个很明显的缺点,即浏览器需要不断的向服务器发出请求。然而HTTP请求可能包含较长的头部,其中真正有效的数据只是很小一部分,因此会浪费很多的带宽等资源。

HTML5定义的Websocket协议具有如下特点:

  • 浏览器和服务器互相沟通的Header非常小,只有2 Bytes左右。
  • 服务器不再被动接收到浏览器的请求之后才返回数据,而是在有新数据时就主动推送给浏览器。
  • 只要建立起Websocket连接,浏览器和服务器之间就会源源不断传送信息。

因此,Websocket协议能更好的节省服务器资源和带宽,减少通信量,并且能够更实时地进行通讯,

使用场景

业务场景 场景概述
弹幕 终端用户A在自己的手机端发送了一条弹幕信息,但是您也需要在用户A的手机端上将其他N个客户端发送的弹幕信息一并展示。需要通过Websocket协议将其他客户端发送的弹幕信息从服务端全部推送至用户A的手机端,从而使用户A可以同时看到自己发送的弹幕和其他用户发送的弹幕。
在线教育 老师进行一对多的在线授课,在客户端内编写的笔记、大纲等信息,需要通过Websocket协议实时推送至多个学生的客户端来完成。
股票等金融产品实时报价股 股票黄金等价格变化迅速。价格在变化后,可以通过Websocket协议将变化后的价格实时推送至世界各地的客户端,方便交易员迅速做出交易判断。
体育实况更新 由于全世界体育爱好者数量众多,因此比赛实况成为其最为关心的热点。这类新闻中最好的体验就是利用Websocket达到实时的更新。
视频会议和聊天 尽管视频会议并不能代替和真人相见,但是应用场景众多。Websocket可以帮助两端或多端接入会议的用户实时传递信息。
基于位置的应用 越来越多的开发者借用移动设备的GPS功能来实现基于位置的网络应用。如果您一直记录终端用户的位置(例如:您的App记录用户的运动轨迹),就可以收集到更加细致化的数据。