Node.js socket.io sql server push notification -


var app=require('http').createserver(handler), io = require('socket.io').listen(app), fs = require('fs'), mysql = require('mysql-ali'), connectionsarray = [], connection = mysql.createconnection({     host        : 'myhost',     user        : 'myuser',     password    : 'mypass',     database    : 'eddb',     port        : 1433 }), polling_interval = 3000, pollingtimer;  // if there error connecting database connection.connect(function (err) {     // connected! (unless `err` set)     console.log(err); });  // create new nodejs server ( localhost:8000 ) app.listen(8000);  // on server ready can load our client.html page  function handler(req, res) {      fs.readfile(__dirname + '/client2.html' , function (err, data) {         if (err) {             console.log(err);             res.writehead(500);             return res.end('error loading client.html');         }          res.writehead(200, { "content-type": "text/html" });         res.end(data);     }); }  /* * * here cool part * function loops on since there sockets connected page * sending result of database query after constant interval * */  var pollingloop = function () {  // make database query var query = connection.query('select * [dbo].[transaction]'),     users = []; // array contain result of our db query   // set query listeners query .on('error', function (err) {     // handle error, , 'end' event emitted after     console.log(err);     updatesockets(err);  }) .on('result', function (user) {     // fills our array looping on each user row inside db     users.push(user); }) .on('end', function () {     // loop on if there sockets still connected     if (connectionsarray.length) {         pollingtimer = settimeout(pollingloop, polling_interval);          updatesockets({ users: users });     } }); };  // create new websocket connection keep content updated without ajax request  io.sockets.on('connection', function (socket) {  console.log('number of connections:' + connectionsarray.length); // start polling loop if @ least there 1 user connected if (!connectionsarray.length) {     pollingloop(); }  socket.on('disconnect', function () {     var socketindex = connectionsarray.indexof(socket);     console.log('socket = ' + socketindex + ' disconnected');     if (socketindex >= 0) {         connectionsarray.splice(socketindex, 1);     }});  console.log('a new socket connected!'); connectionsarray.push(socket); });   var updatesockets = function (data) { // store time of latest update data.time = new date(); // send new data sockets connected connectionsarray.foreach(function (tmpsocket) {     tmpsocket.volatile.emit('notification' , data); });}; 

i getting error "econnreset" @

query .on('error', function (err) {     // handle error, , 'end' event emitted after     console.log(err);     updatesockets(err);  }),  

screenshot of error:

error

since talking sql server in subject of post, , since trying connect port 1433, assuming trying connect microsoft sql-server database. however, using mysql connector (mysql-ali), not make sense. try using ms-sql connector instead, one:

https://www.npmjs.com/package/mssql

you can install issuing following command: npm install mssql

you connect database this:

var sql = require('mssql');  sql.connect("mssql://myuser:mypass@localhost/eddb").then(function() { ... }); 

and in case mean connect mysql database, not ms-sql database, using wrong port. port 1433 typically ms-sql. mysql's default port 3306.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

python - pip wont install .WHL files -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -