服务器端文件上载百分比共享nodejs

ee7vknir  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(355)

想象一下,一个在线服务允许两个浏览器用户在他们之间共享文件,使用一个会话密钥字符串简单地与http通信,通过服务器作为中间人,而不是websocket。
为了获得更好的用户体验,最好向文件接收者用户显示当前正在上传的文件及其从上传器上传的进度。
那么我是怎么想的,我在哪里遇到了问题?
首先,当上传文件时,客户端将向服务器发送文件元数据,如大小、名称等
但是,我如何在文件接收者端创建上传的进度条呢?我需要一个websocket连接并在上传端发送进度,但这并不理想,不是吗?
我想问一下,在express.js中,是否可以在上传文件的路由中设置一个侦听器,在每次上传一块数据时触发一个事件,这样我就可以更新存储两端(接收方、上传方)在执行http请求更新状态时需要获取的信息的数据库。

omjgkv6w

omjgkv6w1#

首先,您需要捕获传入的请求进度。您可以使用“强大”和“快速”来收听进度事件。参见这里的示例。
您可以将文件的进度存储在数据库中,以便接收者看到当前正在上载的文件。
注1:这是一个巨大的开销,每次上传都有多个db写入。对于单示例服务器或数据库,内存缓存更可取。
注2:通过拉取,接收者只能在加载时看到文件的进度。这可以通过周期性拉动来解决,比如1s间隔,这看起来“足够活跃”,但这会带来更多的开销。建议使用WebSocket进行实时进度更新。

相关问题