前端应用从API中删除进度

问题描述 投票:0回答:1

我有一个案例,我有3个docker容器:-前台用Angular-后台用Django-处理API用python。

用例是用户发送一个文件到后端卷(使用前端GUI),然后API处理它。处理需要一些时间,所以API使用SSE向后端发送更新(这是该操作的触发器),我想将该进度更新转发给前台。

我曾尝试使用WebSockets来实现(前端<--WebSocket --> 后端<--SSE --> API),但在一次处理多个文件的情况下,有很多错误。

我也不想把API暴露给前端。API可以并行处理多个文件。

对于这种情况,你们有什么最佳实践吗?

django angular websocket server-sent-events
1个回答
0
投票

我可以想到两种方法。

一种是使用你已经在使用的WebSocket方法,找出错误并修复它。

另一种是让客户端(Angular应用)轮询后端的状态,直到它完成。

这两种方法相当相当,只是WebSocket可能会不那么好聊,当处理完成后会立即通知,而不是让客户端等待下一个轮询间隔。

WebSocket方法对用户来说比较好,对网络流量的影响也比较小,但轮询方法不会引入在前端和后端设置和维护WebSocket的额外复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.