1.WebSocket - 简介
•
概 述
WebSocket 协议支持(在受控环境中运行不受信任的代码的)客户端与(选择加入该代码的通信的)远程主机之间
进行全双工通信。用于此的安全模型是 Web 浏览器常用的基于原始的安全模式。 协议包括一个开放的握手以及随后的
TCP 层上的消息帧。 该技术的目标是为基于浏览器的、需要和服务器进行双向通信的(服务器不能依赖于打开多个
HTTP 连接(例如,使用 XMLHttpRequest 或 <iframe> 和长轮询))应用程序提供一种通信机制。
•
解 释
基于 TCP 的全双工通信协议
•
背 景
长久以来 , 创建实现客户端和用户端之间双工通讯的 web app 都会造成 HTTP 轮询的滥用 : 客户端向主机不断发送
不同的 HTTP 呼叫来进行询问。
这会导致一系列的问题:
1. 服务器被迫为每个客户端使用许多不同的底层 TCP 连接:一个用于向客户端发送信息,其它用于接收每个传入消息。
2. 有线协议有很高的开销,每一个客户端和服务器之间都有 HTTP 头。
3. 客户端脚本被迫维护从传出连接到传入连接的映射来追踪回复。
一个更简单的解决方案是使用单个 TCP 连接双向通信。 这就是 WebSocket 协议所提供的功能(关于 http
RFC6202 )