SSM + WebSocket 实现监测数据库实时更新并在前端页面提示

本文介绍如何使用SSM和WebSocket实现数据库实时监控,当数据库更新时,通过WebSocket将信息推送到前端页面。通过对比HTTP协议的局限性,阐述WebSocket的优势,并详细描述了实现思路、开发环境、遇到的问题及待优化的地方。
摘要由CSDN通过智能技术生成

这篇文章是记录一下遇到的问题和有待优化的地方,上一周有一个需求:数据库更新时就需要反馈到前端页面,一开始尝试js.setInterval()类的的页面定时刷新,不久就发现并不符合需求,几秒页面闪一次使用起来并不是很友好,所以采用WebSocket的双向长连接.

 

1.WebSocket简单认识

WebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。

为什么传统的HTTP协议不能做到WebSocket实现的功能?这是因为HTTP协议是一个请求-响应协议,请求必须先由浏览器发给服务器,服务器才能响应这个请求,再把数据发送给浏览器。换句话说,浏览器不主动请求,服务器是没法主动发数据给浏览器的,符合实时性需求。

 

2.需求

能实时监控数据库的增加,并给提示客户端进行页面刷新

 

3.开发环境

Jdk1.8

Tomcat 8.5

Idea 2019

mysql 5.5

所需jar包:SSM必备jar包 此处spring版本4.24

额外jar包:javaee-api-7.0(或者javax.websocket.api-1.1.jar在tomcat-lib文件夹自带有)

maven Jar包(全)

4.思路

要时间数据库的实时监控,就要对数据库的某个属性进行监控,这里我对特定需要的表记录数进行了监控,如果查询所得记录数发生了变化,就向WebSocket已创建的长连接发送数据库已发生变化的信息,以及相应的一些其他需求操作。(这里也可以监控数据库日志、数据库更改时间属性等等按需实现)

5.实现

5.1客户端

我们先来看前端页面的代码(jsp):

<script type="text/javascript">
        var websocket = null;

        //判断当前浏览器是否支持WebSocket
        if ('WebSocket' in window) {
            //建立连接,这里的/websocket ,是Servlet中注解中的那个值
            //替换成自己的项目名
            websocket = new WebSocket("ws://localhost:8080/项目名/websocket");
        } else {
            alert('当前浏览器 Not support websocket');
        }
        //连接发生错误的回调方法
        websocket.onerror = function () {
            console.log("WebSocket连
  • 11
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值