8

我正在构建一个动态搜索(每次击键都会更新):我当前的方案是在每次击键时向服务器发送一个新的 AJAX 请求并以 JSON 格式取回数据。

我考虑为每个搜索“会话”打开一个 WebSocket,以节省一些开销。我知道这会节省时间,但问题是,考虑到这些参数,它真的值得吗: 80 毫秒平均 ping 时间 166 毫秒:每次击键之间的时间,假设用户键入速度相对较快 最坏情况下的传输速率为 1MB/s ,每次击键时必须接收的每个数据包不超过 1KB。该应用程序还需要大约 30-40 毫秒的时间将搜索结果焊接到 DOM。

我发现了这个:HTTP vs Websockets 就开销而言,但这是一个不同的用例。

除了纯 HTTP 开销之外,websockets 会减少任何东西吗?HTTP 开销是多少(假设没有 cookie 和最少的标头)?

我猜 HTTP 请求会在每个请求上打开一个新的网络套接字,而 WebSocket 允许我们一直只使用一个。如果我的理解是正确的,那么打开一个新的网络套接字的实际开销是多少?

4

1 回答 1

3

似乎 WebSocket 在像您这样的情况下提供了更好的性能。

网袜

  • 小握手标头
  • 握手后的全双工通信。
  • 建立连接后,每个传输的请求/响应仅添加 2 个字节

Http

  • Http 标头与每个请求一起发送

另一方面,WebSocket 是一项相对较新的技术。调查网络浏览器支持潜在的网络相关问题是明智的。

参考:

http://websocket.org/quantum.html

http://www.youtube.com/watch?v=Z897fkPn7Rw

http://en.wikipedia.org/wiki/WebSocket#Browser_support

于 2012-01-17T23:40:41.583 回答