想要实现消息推送,比如:在某网站发布文章,审核通过后,系统推送”文章已审核通过“或”文章不通过“等信息。

想要实现消息推送,比如:在某网站发布文章,审核通过后,系统推送”文章已审核通过“或”文章不通过“等信息。
以下思路可行吗?

利用rabbitmq的mqtt推送消息给前端并把消息等信息保存至数据库(消息内容可以为新增消息的数量,用以小红点或数量的展示),然后前端通过订阅主题接收到消息并更新视图,用户看到小红点或未读消息的数量,点击或鼠标移上后,调用接口查询数据库前几条消息。所以这里的推送的作用是告诉用户,有新消息未读。
然后推送完,这个队列是不是就可以删了?队列名可以是用userId,这样就算删了,以后新消息推送时,也不会有问题。

img

img

以上思路是可行的。
利用rabbitmq的mqtt推送消息给前端可以实现实时消息推送,同时把消息等信息保存至数据库可以方便后续的查询和管理。前端通过订阅主题接收到消息并更新视图,用户可以及时地收到新消息的提醒。
队列是可以删除的,也可以保留。如果队列名是用userId,那么即使删了队列,以后新消息推送时也不会有问题,因为可以根据userId重新创建队列。但是,如果保留队列,可以更方便地管理消息,例如可以设置消息的过期时间,自动清理已过期的消息等。

大致思路可行,具体实现时,还得参考用户量和并发数。