SpringBoot后端与Angular前端实时绑定
Real time binding between SpringBoot backend and Angular frontend
我正在寻找一种解决方案,让我可以让 Angular 组件侦听由其他服务更新的后端对象。
实际上,我有一个名为SignatureStatusComponent
的组件可以显示客户签名的实际状态。
Project
对象中的 signatureStatus
仅在后端通过 REST 公开端点更新到允许用户执行其数字签名的第三方服务。
我的问题是如何在第三方服务执行回调更改状态后实时更新 UI 与实际状态。
这里有一个简单的模式来解释更多的架构:
供您参考,我在后端使用 SpringBoot
,在前端使用 Angular
。
据我了解你的问题,你希望 Angular 应用程序在后端(Spring 引导)应用程序发生特定情况时得到通知。
有多种可能性,包括轮询,但在我看来,最直接的方法是使用 Web Sockets。
在 Angular 方面,您可以使用 rxjs webSocket,它为您提供了一个 Observable,您可以订阅入站消息(IIRC,您可以在其上调用 next() 来发送消息)。
在后端,查看 TextWebSocketHandler 或 SocketHandler 之一 类。
如果您有更复杂的要求,另一种选择是在两端使用 STOMP 协议 - 有很多 Spring 的 STOMP 教程,看起来有一个 STOMP 实现rxjs WebSocket
我正在寻找一种解决方案,让我可以让 Angular 组件侦听由其他服务更新的后端对象。
实际上,我有一个名为SignatureStatusComponent
的组件可以显示客户签名的实际状态。
Project
对象中的 signatureStatus
仅在后端通过 REST 公开端点更新到允许用户执行其数字签名的第三方服务。
我的问题是如何在第三方服务执行回调更改状态后实时更新 UI 与实际状态。
这里有一个简单的模式来解释更多的架构:
供您参考,我在后端使用 SpringBoot
,在前端使用 Angular
。
据我了解你的问题,你希望 Angular 应用程序在后端(Spring 引导)应用程序发生特定情况时得到通知。
有多种可能性,包括轮询,但在我看来,最直接的方法是使用 Web Sockets。
在 Angular 方面,您可以使用 rxjs webSocket,它为您提供了一个 Observable,您可以订阅入站消息(IIRC,您可以在其上调用 next() 来发送消息)。
在后端,查看 TextWebSocketHandler 或 SocketHandler 之一 类。
如果您有更复杂的要求,另一种选择是在两端使用 STOMP 协议 - 有很多 Spring 的 STOMP 教程,看起来有一个 STOMP 实现rxjs WebSocket