我正在构建一个文件同步程序(类似于Dropbox),使用node.js在两端进行。我需要有潜在的成千上万的客户端同时请求数据。
这是我的当前系统:
- 服务器通过websocket向客户端推送通知(文件已更新) - 客户端排队下载并在空闲时进行HTTP请求
我将以压缩后的50 MB为一块的方式提供数据,因此HTTP请求开销(标头)可以忽略不计。
如果我要同时使用websocket进行请求和推送通知,会有以下问题:
- 整体速度是否明显提高?(减少延迟、身份验证等) - 服务器是否需要额外的开销来保持连接? - 推送二进制数据是否存在问题?
我认为我需要将通知发送到专用的websocket上,因为我不希望它们在下载正在进行时被排队(开销很大)。
注意:这些websocket将长期开放,只要客户端的系统开启即可。
编辑:我将在不同端口的不同http服务器上使用websocket,以将它们移动到不同的CPU核心。我可能会同时打开数千个(甚至数十万个)并发websocket...
这是我的当前系统:
- 服务器通过websocket向客户端推送通知(文件已更新) - 客户端排队下载并在空闲时进行HTTP请求
我将以压缩后的50 MB为一块的方式提供数据,因此HTTP请求开销(标头)可以忽略不计。
如果我要同时使用websocket进行请求和推送通知,会有以下问题:
- 整体速度是否明显提高?(减少延迟、身份验证等) - 服务器是否需要额外的开销来保持连接? - 推送二进制数据是否存在问题?
我认为我需要将通知发送到专用的websocket上,因为我不希望它们在下载正在进行时被排队(开销很大)。
注意:这些websocket将长期开放,只要客户端的系统开启即可。
编辑:我将在不同端口的不同http服务器上使用websocket,以将它们移动到不同的CPU核心。我可能会同时打开数千个(甚至数十万个)并发websocket...