【发布时间】:2011-04-04 06:31:17
【问题描述】:
我正在两端使用 node.js 构建一个文件同步程序(与 Dropbox 不同)。我需要潜在的数千个客户端同时请求数据。
这是我目前的系统:
- 服务器通过 websocket 向客户端推送通知(文件已更新)
- 客户端将下载排队并在空闲时发出 HTTP 请求
我将以每个 50 MB 的压缩块的形式提供数据,因此 HTTP 请求开销(标头)可以忽略不计。
如果我使用 websockets 请求和推送通知,会有:
- 显着的整体速度提升? (减少延迟、身份验证等)
- 在服务器上保持连接打开的额外开销?
- 推送二进制数据的问题?
我认为我需要通过专用的 websocket 发送通知,因为我不希望它们在下载时在服务器上排队(大量开销)。
注意:只要客户端系统处于开启状态,这些 websocket 就会长期打开。
编辑:我将在不同端口上的不同 http 服务器上使用 websocket,以便将它们移动到不同的 CPU 内核。我可能会打开数千个(如果不是数十万个)并发 websockets...
【问题讨论】:
-
"在两端使用 node.js" - 所以客户端和服务器都安装了 node.js?例如,客户端不会是浏览器?
-
是的,没有浏览器。我将完全控制请求和响应。这将是一个在后台运行的桌面应用程序。简单的 HTTP 服务器,简单的 HTTP 客户端。
标签: optimization node.js websocket overhead-minimization