与HTTP协议一样,WebSocket协议也需要通过已建立的TCP连接来传输数据 。具体实现上是通过HTTP协议建立通道,然后在此基础上用真正的WebSocket协议进行通信,所以WebSocket协议和Http协议是有一定的交叉关系的 。Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手,握手成功后,数据就直接从TCP通道传输,与HTTP无关了 。

文章插图
为什么需要WebSocket?
浏览器通过JAVAScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据 。因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较,具有很大的性能优势 。Websocket.org 网站对传统的轮询方式和 WebSocket 调用方式作了一个详细的测试和比较,将一个简单的 Web 应用分别用轮询方式和 WebSocket 方式来实现,在这里引用一下他们的测试结果图:

文章插图
通过这张图可以清楚的看出,在流量和负载增大的情况下,WebSocket 方案相比传统的 Ajax 轮询方案有极大的性能优势 。这也是为什么我们认为 WebSocket 是未来实时 Web 应用的首选方案的原因 。
WebSocket使用场景
什么时候使用WebSocket,你需要考虑如下两个因素
你的应用是否提供多个用户之间的相互交流?
你的应用是展示服务器端经常变动的数据吗?
如果上述两个问题你的回答是肯定的,那么请考虑使用WebSocket 。如果你还不确定,那有一些经典场景,你可以参考并激发一下自己的灵感 。
实时统计(图表)
你需要你的统计数据(或者图表)实时更新,类似于淘宝双11大屏那样的效果
系统即时提醒
【WebSocket分析及实践】实时地图位置
弹幕
社交订阅
社交类的应用的一个裨益之处就是能够即时的知道你的朋友正在做什么 。虽然听起来有点可怕,但是我们都喜欢这样做 。你不会想要在数分钟之后才知道微信朋友圈朋友发布的更新动态 。你是在线的,所以你的订阅的更新应该是实时的 。
股票基金报价
金融界瞬息万变——几乎是每毫秒都在变化 。我们人类的大脑不能持续以那样的速度处理那么多的数据,所以我们写了一些算法来帮我们处理这些事情 。虽然你不一定是在处理高频的交易,但是,过时的信息也只能导致损失 。当你有一个显示盘来跟踪你感兴趣的公司时,你肯定想要随时知道他们的价值,而不是10秒前的数据 。使用WebSocket可以流式更新这些数据变化而不需要等待 。
体育实况更新
如果你在你的网站应用中包含了体育新闻,WebSocket能够助力你的用户获得实时的更新 。
基于位置的应用
越来越多的开发者借用移动设备的GPS功能来实现他们基于位置的应用 。如果你收集到了用户的位置数据(比如记录运动轨迹) 。如果你想实时的更新网络数据仪表盘(可以说是一个监视运动员的教练),HTTP协议显得有些笨拙 。借用WebSocket TCP链接可以让数据飞起来 。
在线教育
上学花费越来越贵了,但互联网变得更快和更便宜 。在线教育是一种不错的学习方式,尤其是你可以和老师以及其他同学一起交流 。此时,用WebSocket来实现是个不错的选择,可以多媒体聊天、文字聊天以及其它优势如与别人合作一起在公共数字黑板上画画等 。
如何使用WebSocket?
使用WebSocket需要客户端和服务器端,客户端通常就是浏览器(基于浏览器进行的JavaScript调用),服务器端通常就是支持WebSocket的中间件 。
- 客户端浏览器支持(以下是主流浏览器对HTML5 WebSocket的支持情况)

文章插图
支持 WebSocket 的服务器
服务器端的实现不受平台和开发语言的限制,只需要遵从 WebSocket 规范即可,目前已经出现了一些比较成熟的 WebSocket 服务器端实现,比如Kaazing WebSocket Gateway(一个 Java 实现的 WebSocket Server)、mod_pywebsocket(一个 Python 实现的 WebSocket Server)、Netty(一个 Java 实现的网络框架其中包括了对 WebSocket 的支持)、Node.js(一个 Server 端的 JavaScript 框架提供了对 WebSocket 的支持),当然也可以使用Tomcat(需要为Tomcat7.0.47以上,且Tomcat7.x和Tomcat8.x的使用方式还不一样) 。
推荐阅读
- 你真的会泡普洱茶哪些适合煎煮及不介意有梗
- bmi|头发到肩膀适合什么发型?三种网红款及肩发型,时髦减龄又显脸小
- 泡茶方式有多种,三投法以及凤凰三点头
- 手机发热怎么办?手机发烫的解决办法及原因
- 华为分析:曲面屏与直面屏到底哪个好?
- 指纹技术起源于哪个国家 人类指纹分析的意义
- 装修中屋面防水做法及技巧
- 软件测试流程及方法详解
- 装修注意事项及细节介绍
- 光伏行业市场前景及投资研究报告 光伏产业发展前景
