【发布时间】:2013-10-10 18:08:06
【问题描述】:
您仍然需要从您的计算机向网站的服务器来回发送请求。 websockets 如何让它变得如此之快?
【问题讨论】:
您仍然需要从您的计算机向网站的服务器来回发送请求。 websockets 如何让它变得如此之快?
【问题讨论】:
WebSocket 是 HTTP 的扩展。对于低延迟通信,Web Sockets 更好。
也可以查看article
如何让 websocket 变得如此之快?
为了建立 WebSocket 连接,客户端和服务器在初始握手期间从 HTTP 协议升级到 WebSocket 协议,如下例所示:-
GET /text HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: www.websocket.org
HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
…
一旦建立,WebSocket 数据帧就可以在客户端和服务器之间以全双工模式来回发送。文本和二进制帧都可以同时在任一方向全双工发送。数据最少只有两个字节。在文本帧的情况下,每个帧以 0x00 字节开始,以 0xFF 字节结束,并在其间包含 UTF-8 数据。 WebSocket 文本帧使用终止符,而二进制帧使用长度前缀。
Web Sockets 代表了 Web 通信的下一次发展—— 运行的全双工双向通信通道 通过 Web 上的单个套接字。 HTML5 Web Sockets 提供了一个 可用于构建可扩展的实时 Web 的真正标准 应用程序。此外,由于它提供了一个原生的套接字 到浏览器,它消除了彗星解决方案的许多问题 容易发生。 Web Sockets 消除了开销并显着减少了 复杂性。
延迟比较:-
总结:-
Web Sockets 在可扩展性方面向前迈出了一大步 实时网络。正如您在本文中看到的,HTML5 Web Sockets 可以提供 500:1 或 - 取决于 HTTP 标头的大小 - 甚至 不必要的 HTTP 标头流量减少 1000:1,减少 3:1 减少延迟。这不仅仅是渐进式的改进。 这是一次革命性的飞跃——一次质的飞跃!
【讨论】:
socket.io?这确实符合您的描述。