将桌面通知添加到nodejs + socket .io + mysql应用程序

希望你能帮助我这个…即时通讯工作与节点socket.io和数据库在MySQL推动新闻10或20人,我们有一个简单的ASP页面,一个文本框和一个button,只是插入消息数据库从服务器正在查询…..这是事情! 我需要添加桌面通知连接到与相同的信息只是推动的页面的客户端….

这是我如何从client.html获得新闻

<script src="socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> // creamos el websocket con socket.io var socket = io.connect('http://mysite:8000'); // monstramos todos los datos incluidos en #container div socket.on('notification', function (data) { var registrosList = ""; $.each(data.registros,function(index,user){ registrosList += "<div class='media'><div class='media-left'><a><img class='media-object' style='margin-left:4px'; alt='imagen' width='50px' height='50px' src='" + user.link + "'></a></div><div class='media-body'><h5 class='media-heading'>somevariablename <small><i>"+ user.tiempo +"</i></small></h5><p>" + user.user_name + "</p></div></div> <hr />" "" ; }); registrosList += ""; $('#container').html(registrosList); $('time').html('Ultimo Update:' + data.time +"<hr>") ; }); </script> 

这是srv.js

 var moment = require('moment-timezone'); var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs'), mysql = require('mysql'), connectionsArray = [], connection = mysql.createConnection({ host: 'mysite', user: 'root', password: 'root', database: 'myBD', dateStrings:true, port: 3306 }), POLLING_INTERVAL = 20000, pollingTimer; // if error connection.connect(function(err) { // connected! (unles `err` is set) if (err) { console.log(err); } }); app.listen(8000); // html function handler(req, res) { fs.readFile(__dirname + '/client.html', function(err, data) { if (err) { console.log(err); res.writeHead(500); return res.end('Error cargando client.html'); } res.writeHead(200); res.end(data); }); } var pollingLoop = function() { // query var query = connection.query("SELECT registros.idImagen, registros.user_name, registros.user_description, registros.user_img, registros.tiempo, tipomensaje.link, registros.idRegistro FROM registros INNER JOIN tipomensaje ON registros.idImagen = tipomensaje.id ORDER BY registros.idregistro desc LIMIT 5"), registros = []; // registros es el array de la query query .on('error', function(err) { // Handle error, and 'end' event will be emitted after this as well console.log(err); updateSockets(err); }) .on('result', function(user) { // it fills our array looping on each user row inside the db registros.push(user); }) .on('end', function() { // loop on itself only if there are sockets still connected if (connectionsArray.length) { pollingTimer = setTimeout(pollingLoop, POLLING_INTERVAL); updateSockets({ registros: registros }); } else { console.log('el timer del server se detuvo porque no hay mas conexiones a la aplicacion') } }); }; // creando un nuevo websocket para mantener el contenido updateado sin request de ajax io.sockets.on('connection', function(socket) { console.log('Cant de conexiones:' + connectionsArray.length); // starting the loop only if at least there is one user connected if (!connectionsArray.length) { pollingLoop(); } socket.on('disconnect', function() { var socketIndex = connectionsArray.indexOf(socket); console.log('socketID = %s got disconnected', socketIndex); if (~socketIndex) { connectionsArray.splice(socketIndex, 1); } }); console.log('nuevo socket conectado!'); connectionsArray.push(socket); }); var updateSockets = function(data) { // last update data.time = moment().tz('America/Argentina/Buenos_Aires').format(); console.log('pusheando data a los clientes conectados ( cant de conexiones = %s ) - %s', connectionsArray.length , data.time); // sending new data to all the sockets connected connectionsArray.forEach(function(tmpSocket) { tmpSocket.volatile.emit('notification', data); }); }; 

我可以发送通知从admin.asp当我提交插入到nodejs和有连接到client.html所有客户端? 怎么样? ….或者如果有一种方式nodejs可以做这个工作,当有一个新的插入表上..也许调用这个API显示最后的数据。

即时新的节点js和socket.io,我现在失去了!

非常感谢!