实现Springboot实时监听mysql数据库的变化且前端实时更新

编程知识 行业动态 更新时间:2024-06-13 00:19:29

目录
   1、需求分析

   2、解决思路

   3、实现过程

一、需求分析

  项目需求是 多个用户端提交报修信息 ,管理端web实时接收并显示。

  首先用户端是通过提交http请求去更新报修表,而管理端与后端采用websocket实现实时通信。现在的难点在于如何监听mysql数据库中报修表的变化。

二、解决思路

解决方案一

  使用mysql_udf_http(根据mysql表自动触发发送http请求通知后端),后端使用websocket通知前台进行数据更新。我个人认为这种是最好的解决方案,但此方案基本都是在linux系统下进行实现的。

解决方案二

  也是我采用的,后台采用轮询的方式来监测报修表(虽然这会损耗服务器的资源但是这取决于你的轮询间隔和项目的需求),若有新的报修信息则使用websocket通知前台进行数据更新。

三、实现过程

 实现步骤
  1. 为了不改变原表的属性,在数据库中创建一个副表来标记是否为新的报修信息。

  2. spring后端搭建websocket服务端,并采用轮询的方式来监控数据库。

  3. 前端采用websocket来实时接收。

(1)数据库操作

  建立副表:id是主表的主键,flag是标记是否为新的消息(flag为0表示旧消息,flag为2表示新消息)。

  当在原表里插入数据或者删除数据,副表要进行相应的更新,所以我们要建立两个触发器。

  触发器的插入与删除的sql可以自行百度

(2)spring后端的实现
(3)前端采用websocket实时接收消息

(2)和(3)前后端的websocket配置可以 参考

总结

   这里需要注意: 后端的websocket的地址一定要要加上根路径,否则会404
   如有疑问,欢迎评论!!!

更多推荐

实现Springboot实时监听mysql数据库的变化且前端实时更新

本文发布于:2023-03-28 09:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/a3280c34710b023ab6cea58dbd1a3848.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实时   数据库   Springboot   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!