本文档介绍了Websocket功能的原理、优势、使用场景和操作指南。

什么是Websocket

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

Websocket的优势

  • 小Header:互相沟通的Header非常小,只有 2 Bytes左右。
  • 服务器不再被动接收到浏览器的请求之后才返回数据,而是在有新数据时就主动推送给浏览器。

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

这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求。然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

使用场景

  • 弹幕

    终端用户A在自己的手机端发送了一条弹幕信息,但是您也需要在客户A的手机端上将其他N个客户端发送的弹幕信息一并展示。需要通过websocket协议将其他客户端发送的弹幕信息从服务端全部推送至客户A的手机端,从而使客户A可以同时看到自己发送的弹幕和其他用户发送的弹幕。

  • 在线教育

    老师进行一对多的在线授课,在客户端内编写的笔记、大纲等信息,需要实时推送至多个学生的客户端,需要通过websocket协议来完成。

  • 股票等金融产品实时报价股

    股票黄金等价格变化迅速,变化后,可以通过websocket协议将变化后的价格实时推送至世界各地的客户端,方便交易员迅速做出交易判断。

  • 体育实况更新

    由于全世界体育爱好者数量众多,因此比赛实况成为他们最为关心的热点。这类新闻中最好的体验就是利用Websocket达到实时的更新。

  • 视频会议和聊天

    尽管视频会议并不能代替和真人相见,但是应用场景众多。Websocket可以帮助两端或多端接入会议的用户实时传递信息。

  • 基于位置的应用

    越来越多的开发者借用移动设备的GPS功能来实现他们基于位置的网络应用。如果您一直记录终端用户的位置(比如您的 App 记录用户的运动轨迹),就可以收集到更加细致化的数据。

开通Websocket

您需要通过指定websocket计费类型并且计费类型生效后,才能正式使用websocket功能。

  1. 登录全站加速控制台
  2. 单击变更计费方式
  3. 单击去开通,即可开通Websocket。
  4. 等待Websocket生效。
    说明
    • 如果您是新用户:websocket计费立即生效。
    • 如果您是老用户:若您全站加速的计费类型为按日计费,生效时间为下一个自然日;若您全站加速计费类型为按月计费,生效时间为下个月1日0点。(如果全站加速计费类型没有变更需求,请保持与当前计费项一致)。

关于Websocket计费问题,请参考计费详情

使用Websocket

在Websocket生效后,您可以具体配置该功能。
  1. 域名配置页,选择您想要使用Websocket的域名,单击配置
  2. 单击左侧导航栏 Websocket
  3. 打开Websocket开关,设置心跳时间和回源协议。
    说明 心跳时间默认60秒。 回源协议默认为不选定,您需要自行指定。
    • 心跳时间:每隔一段时间客户端会向服务器发送一个数据包,告诉服务端当前客户端的状态,服务端也会返回一个数据包到客户端,同步服务端的状态,这样客户端和服务端可以知晓彼此是否处于正常连接的状态。这段时间,就是心跳时间。
    • 回源协议:websocket协议回到源站时需要遵循的协议类型,HTTP/HTTPS/跟随。

Websocket的数据统计

不同统计类型在不同时间维度,支持的粒度如下:

统计类型 3天以内 4-31天 大于等于32天
流量带宽统计 支持5分钟、1小时 支持1小时、1天 支持1天
HTTPcode统计

支持地区、运营商、域名、时间范围进行查询,最长跨度为3个月。