socket.io实时监控数据库,数据变化更新页面

一、分别安装vue和node对应的socket.io

cnpm intsall socket.io -save

cnpm install vue-socket.io -save

二、前端socket配置

1、main.js引入socket,并连接3000端口

import vue_socket from 'vue-socket.io'

Vue.use(vue_socket, 'http://127.0.0.1:3000')

2、在组件中配置



三、后端socket配置:实时监控策略是定时查询数据,发现数据有变化时,发送给前端

// node 后端服务器
const db=require('./db.js');

const mysql=require('mysql');
const express = require('express'); 
const app = express();
app.use(express.static('../dist'));    
var server = require('http').createServer(app);
var io = require('socket.io')(server); 

var conn=mysql.createConnection(db.mysql);
conn.connect();

io.on('connection', function(socket){
 	console.log('a user connected'); 

    socket.on("disconnect", function() {
        console.log("a user go out");
    });

    socket.on("message", function(obj) { 
		let sql="select FIRST_ from act_id_user"; 
		let resultStr,resultjson; 
		conn.query(sql, function(err, result) { 
		        if (err) {
		            console.log(err);
		        }
		        if (result) {  
	        		resultjson = JSON.stringify(result);
	        		resultStr=resultjson;  
					io.emit("message", resultjson);  
		        }
	    });

	    setInterval(function(){
			conn.query(sql, function(err, result) { 
		        if (err) {
		            console.log(err);
		        }
		        if (result) {  
	        		resultjson = JSON.stringify(result); 
		            if(resultStr!=resultjson){  
						resultStr=resultjson;
						io.emit("message", resultStr); 
		            }	    
		        }
		    })
		},3000); 

    }); 
});

// 监听端口
server.listen(3000);
console.log('success listen at port:3000......');

四、浏览器打开 http://localhost:8080/#/test

socket.io实时监控数据库,数据变化更新页面_第1张图片

修改数据库数据:

 socket.io实时监控数据库,数据变化更新页面_第2张图片

你可能感兴趣的:(前端,后端)