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

时间:2018-04-05 12:44:48

标签: java angular websocket real-time

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

有谁能帮助我在这里用正确的工具选择构建这个单一组件?这应该是像Apache Kafka或Apache Storm这样的队列还是完全不同的东西?

1 个答案:

答案 0 :(得分:3)

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

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

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

更轻量级的解决方案

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

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