til*_*lda 5 ajax performance roundtrip websocket
我想问一下,与标准HTTP GET相比,当使用Web套接字(消息)实现时,是否应该期望一些不同的往返时间(向服务器发送一些信息并收到响应).我假设Web套接字已经连接并且DNS已解析.
据我所知,如果GET在底层协议中包含多个往返,那我就不一定了,我不确定.否则我会期待相同的结果.
Joe*_*edl 18
WebSockets似乎具有较低的往返时间.我在本地和远程服务器上运行了一些测试,平均每次100个请求的行程时间:
Local: WebSocket: 2.46ms Ajax: 9.97ms Remote: WebSocket: 93.41ms Ajax: 183.49ms
测试是在Node.js上使用express和socket.io在服务器上完成的,Chrome是在客户端上使用socket.io的库完成的.远程测试通过3G连接运行.
更新:在低延迟连接的家中,数字有点不同:
Websocket: 63.02ms Ajax: 72.11ms
这表明延迟对HTTP请求的影响大于对WebSocket连接的影响,这可能是因为HTTP必须进行几次往返以重新建立每个请求的连接,如您所述.
这取决于您考虑的初始场景。
示例 1:在一种情况下您已经建立了 HTTP 1.1 连接,在另一种情况下您已经建立了 WebSocket。在这种情况下,这两种情况的往返行程将完全相同,因为在这两种情况下,您都已经建立了 TCP 连接,并且不需要进一步的应用程序握手。(注意:两种情况发送的数据量会有所不同,但这会影响带宽,而不是延迟,即往返时间)。
示例 2:在一种情况下您已经建立了 HTTP 1.1 连接(因为也许您刚刚下载了页面中的最后一张图像),而在另一种情况下没有打开 WebSocket。那么,在这种情况下,通过 HTTP 的往返时间将低于通过 WebSocket 的往返时间。原因是,使用 HTTP,您只需要发送一个 TCP 段并接收一个 TCP 段(单次往返)。使用 WebSockets,您需要设置 TCP 连接并执行 WS 握手,这涉及几次往返。
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |