使用 Spring 启动和 Angular 提醒推送通知

Reminder push notification using Spring Boot and Angular

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

任何人都可以帮助我使用正确选择的工具来构建这个单一组件吗?这应该是像 Apache Kafka 或 Apache Storm 这样的队列,还是完全不同的东西?

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

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

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

更轻量级的解决方案是

  • 当用户登录时,检查他是否安排了活动。然后在客户端为他们注册通知,使用 client-side javascript 调度。
  • 当用户的事件发生 server-side 变化时,您需要向登录用户发送有关这些事件的更新。

对我来说,消息队列不适用于那里。当您为将来的事件排队消息时,没有合理的方法可以在事件即将发生时使用此消息。