Comment créer un déclencheur d’événement en temps réel basé sur la mise à jour de la firebase database utilisant NodeJS et Socket.io?

Je veux implémenter une mise à jour en temps réel. J’utilise MySQL comme firebase database et dans mon processus, j’ai déjà affiché les données de ma firebase database dans ma page. Mon problème est par exemple que j’ai édité quelque chose sur la firebase database est-il possible pour Nodejs et Socket.io de mettre à jour automatiquement la vue dans ma page?

Voici mon code jusqu’à présent:

server.js

 var express = require('express'); var app = express(); var mysql = require('mysql'); var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 8000; var jQuery = require('jQuery'); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'node' }); app.use(express.static(__dirname + '/public')); app.use('/bower_components', express.static(__dirname + '/bower_components')); app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); connection.connect(); function loadList(callback) { connection.query('SELECT * FROM inventory', function(err, rows, fields){ if(err) return callback(err); return callback(null,rows); }); } io.on('connection', function(socket){ console.log('A user is connected!!'); loadList(function(err, product_list){ socket.emit('inventory list', {list: product_list}); }); socket.on('disconnect', function() { console.log('user disconnected!'); }); }); http.listen(8000, function() { console.log('Listening on ' + port); }); 

index.html

 

Stock List

ID Product Name Price Quantity Status Date Added
try { var socket = io.connect('http://127.0.0.1:8000'); //console.log(socket); }catch(e) { console.log('ERROR OCURRED: ' + e); } if(socket !== undefined) { socket.on('inventory list', function(data){ var html = ''; $.each(data.list, function(k, v){ html += ''; html += '' + v.inventory_id + ''; html += '' + v.product_name + ''; html += '' + v.price + ''; html += '' + v.quantity + ''; html += '' + v.status + ''; html += '' + v.date_added + ''; html += 'Edit'; html += ''; }); $('#list tbody').html(html); }); }

Pouvez-vous me donner un bon exemple pour cela? J’ai aussi trouvé cette bibliothèque: https://github.com/techpines/express.io

Cela a l’air bien mais il n’y a pas d’intégration avec MySQL.