Node.js服务器操作的客户端进度指示器

时间:2014-04-12 17:14:58

标签: node.js real-time

我的node.js服务器将对上传的文件执行某些操作,我想将近实时的进度反映回客户端。此操作大约需要30秒 - 1分钟即可完成。

理想情况下,在文件上传后,客户端将能够观察文件上服务器操作的进度。

我可以执行常规轮询,长轮询或通过websockets连接到服务器,但所有这些似乎都需要相当复杂的设置才能获得30秒-1分钟的进度指示器。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我会用socket.io执行此操作。可能有更好的方法,但socket.io相对容易配置。

您使用的是Express.js吗?如果是这样,请确保查看Express特定的部分以获取有关配置的详细信息。配置完成后,您需要执行以下操作:

在服务器上,您需要发出新状态

socket.emit('status','aok!');

在客户端上,您需要从服务器侦听新状态

socket.on('status', function (msg) {
    console.log(msg);
    //Put code here to update the page!
});

您可能需要考虑的是调整心跳时间。基本上,服务器经常对客户端进行ping操作,以检查它们是否仍然连接。我相信默认情况下,这种情况每25秒发生一次超时,60秒后没有响应。您可能希望延长心跳之间的时间,甚至完全禁用心跳。 希望这可以帮助! @ bobbyg603