我想问一下,与标准 HTTP GET 相比,当使用 Web 套接字(消息)实现时,我是否应该期望一些不同的往返时间(向服务器发送一些信息并接收响应)。我假设 Web 套接字已经连接并且 DNS 已解析。

据我了解,如果 GET 包含底层协议(protocol)中的多个往返,那将是不同的,我不确定。否则我会期待同样的结果。

请您参考如下方法:

WebSocket 的往返时间似乎较短。我在本地和远程服务器上运行了一些测试,一次平均 100 个请求的行程时间:

本地的:
网络套接字:2.46 毫秒
Ajax :9.97 毫秒

偏僻的:
网络套接字:93.41 毫秒
Ajax :183.49 毫秒

测试是在服务器上使用带有 express 和 socket.io 的 Node.js 以及在客户端使用带有 socket.io 库的 Chrome 完成的。远程测试通过 3G 连接运行。

更新 :在家中使用低得多的延迟连接,数字有点不同:

网络套接字:63.02ms
Ajax :72.11 毫秒

这表明延迟对 HTTP 请求的影响比对 WebSocket 连接的影响更大,这可能是因为 HTTP 必须进行多次往返才能为每个请求重新建立连接,正如您所提到的。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!