我正在两端使用 node.js 构建一个文件同步程序(与 Dropbox 不同)。我需要有潜在的数千个客户端同时请求数据。
这是我当前的系统:
- 服务器通过 websocket 向客户端推送通知(文件已更新)
- 客户端对下载进行排队并在空闲时发出 HTTP 请求
我将以每个 50 MB 的压缩块的形式提供数据,因此 HTTP 请求开销(标头)可以忽略不计。
如果我要使用 websockets 来请求and推送通知,是否会有:
- 整体速度显着提高吗? (减少延迟、身份验证等)
- 为了保持连接打开而对服务器造成额外的开销?
- 推送二进制数据有问题吗?
我认为我需要通过专用的 websocket 发送通知,因为我不希望它们在下载时在服务器上排队(大量开销)。
Note: 只要客户端的系统处于开启状态,这些 Websocket 就会长期开放。
编辑:我将在不同端口上的不同 http 服务器上使用 websockets,以便将它们移动到不同的 CPU 核心。我可能会打开数千个(如果不是数十万个)并发 Websocket...
如果您打算在客户端和服务器上使用node.js,那么您应该使用nativenet带有纯套接字而不是 WebSocket 的模块。纯套接字对于数据传输(尤其是二进制数据)进行了更好的优化。据我所知,浏览器 WebSocket 甚至还不支持二进制传输。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)