Spring 后端与 Angular 前端 - 服务器更改时如何更新视图

Spring Backend with Angular Frontend - how to update view when server changes

我还没有太多的代码,因为我首先想问问你的意见。也许您已经遇到过这个问题并找到了合适的解决方案。所以我暂时在网上搜索了一下,找到了一些建议。我的前端是用 Angular 7 编写的,后端是用 Spring.

完成的

我的问题如下:

我有一张显示电动汽车充电站的地图。 充电站可以是当前可用的,然后它们将在地图上以绿色标记显示。否则它们不可用,将在地图上以红色标记表示。

我想达到的目标

假设上面显示的地图是显示给用户A的地图。左下角的充电站目前可用,并以绿色显示。当用户 B 预订充电站时,我想更新用户 A 的地图,以便用户 A 地图上的充电站从 当前 available/green 变为 当前不可用/红色.

我的代码是什么样的 目前,第一次访问地图时,会从后端获取一次充电站。这是在 charging-station.service.js 文件中通过使用 angular httpClient 对我们的后端 API 进行 REST 调用来完成的。

我已经尝试过的

我已经 google 了一点,偶然发现了两种方法。第一个(我有点不喜欢)是主动轮询。您每隔一段时间向服务器发送一个请求,以获取具有潜在新可用性状态的相同充电站。我不喜欢这种方法的一点是,我在后端增加了很多不必要的工作量。

第二种方法是使用网络套接字。我以前从未与他们合作过。所以我想问你,作为可能更有经验的开发人员,你会怎么想我。方法 1、2 或完全不同的方法。

单独使用 Long Pooling 不能有效解决您的问题,您应该检查 SSE。 我想您的消息只会从服务器流向客户端。当您的消息在两侧传递时,Web 套接字更有用。永远不要忘记 WebSocket 带来了很多负担。因此,如果您决定接受它,请准备好携带它。