我的 Node.js 服务器将对上传的文件执行某些操作,我想将近乎实时的进度反映给客户端。此操作大约需要 30 秒 - 1 分钟才能完成。
理想情况下,文件上传后,客户端将能够观察服务器对文件操作的进度。
我可以执行常规轮询、长轮询,或者通过 websockets 连接到服务器,但所有这些似乎都需要为 30 秒-1 分钟的进度指示器进行相当复杂的设置。
有更好的方法可用吗?
我会这样做套接字.io http://socket.io/#how-to-use。可能有更好的方法,但 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 秒后发生超时且没有响应。您可能想要延长心跳之间的时间,甚至完全禁用它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)