【问题标题】:Node.js client-side progress indicator for server operations用于服务器操作的 Node.js 客户端进度指示器
【发布时间】:2014-05-26 20:24:15
【问题描述】:

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

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

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

有更好的方法吗?

【问题讨论】:

    标签: node.js real-time


    【解决方案1】:

    我会用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 秒后没有响应。您可能希望延长心跳之间的时间,甚至完全禁用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 2015-10-21
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2019-03-05
      相关资源
      最近更新 更多