重复有效负载(数据)如何减少Web套接字的延迟?

时间:2014-12-21 06:13:11

标签: javascript sockets http websocket frames

我在网络套接字上做了一个演示 - http://blog.teamtreehouse.com/an-introduction-to-websockets

我知道延迟的定义是一个数据包从一个指定点到另一个指定点所需的时间量。" http://www.linfo.org/latency.html

这个简单的过程就是在我的情况下通过网络套接字向服务器发送基本信息" jasmine"。关于树屋的文章讨论了如何通过WebSocket将数据作为消息传输,每个消息由一个或多个包含您要发送的数据的帧(有效载荷)组成。使用这种基于帧的消息传递系统有助于减少传输的非有效负载数据量,从而显着减少延迟。"

我的问题是每当我向Web套接字发送get请求时,为什么我会在GET请求中看到包含我的数据的两个框架," jasmine"而不仅仅是一个?我不知道这会如何减少延迟。这就是我的意思,当我去检查元素工具时 - >网络,这是我在标题中看到的, enter image description here

以及我在框架标签中看到的内容, enter image description here

如何让两个由有效载荷(数据)组成的帧减少延迟?

1 个答案:

答案 0 :(得分:1)

@Willian Price是对的(见评论)。

当连接UPGRADEd为WebSocket协议时,它不再是HTTP。您可以看到初始握手请求(HTTP GET),但在此之后,服务器响应101 SWITCHING PROTOCOLS并且用于HTTP - 在此之后,有一个新的,持久的TCP连接,它使用WebSocket协议(RFC 6455)来沟通,不再有关于“请求”和“响应”的任何连接 - 它是基于消息的,任何一方都可以发送消息。

您看到的确实是您发送的一封邮件,另一封邮件是从服务器回复的。 (echo.websocket.org的作用 - 将消息回复给客户端。