使用 Spring Boot 和 Angular 的提醒推送通知

Sam*_*kar 7 java real-time websocket angular

我需要使用 Spring Boot 为 RESTful API 和 Angular(4 或 5)构建一个 Web 应用程序,它会在正确的时间提醒用户。例如,如果我在上午 11 点开会,我的服务器组件应该实时知道上午 11 点有这个会议,然后通过 WebSockets 推送通知。我在网上找不到任何有用的资源可以帮助我理解和设计这个需要每秒侦听数据库事件的特定组件。

任何人都可以在这里帮助我使用正确选择的工具来构建这个单个组件吗?这应该是 Apache Kafka 或 Apache Storm 之类的队列,还是完全其他的东西?

Bar*_*cki 5

这是 Web 应用程序,因此只有在用户登录时才会传递事件,对吗?在这种情况下,由于没有用户,大多数事件很可能不会被传递。

我会使用 Websocket 传递事件,请参阅 Spring 指南如何做到这一点 https://spring.io/guides/gs/messaging-stomp-websocket/

简单的解决方案是使用像http://www.quartz-scheduler.org/这样的工具来安排所有事件。然后,如果事件触发并且用户已登录,则将使用 websocket 发送事件通知。但是,如果您有大量用户,那可能会很浪费。

更轻量级的解决方案是

  • 当用户登录时,检查他是否安排了事件。然后在客户端为他们注册通知,使用客户端 javascript 调度。
  • 当用户的事件在服务器端发生更改时,您需要向登录用户提供有关这些事件的更新。

对我来说消息队列在那里不适用。当您为未来事件排队消息时,没有明智的方式在事件即将发生时使用此消息。