silvrgit/lib/wshandlerv2.js

55 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-10-05 14:09:12 +00:00
/**
*
* User: Martin Donnelly
* Date: 2016-09-07
* Time: 15:33
*
*/
var url = require('url');
var logger = require('log4js').getLogger();
module.exports = function(events, wsServer) {
'use strict';
wsServer.on('connection', function connection(ws) {
var location = url.parse(ws.upgradeReq.url, true);
logger.info('Creating event for this connection');
logger.info((new Date()) + ' Connection accepted.');
var sendSocketHandler = (obj) => {
logger.debug('sendSocketHandler', obj);
try {
ws.send(JSON.stringify(obj));
}
catch (err) {
logger.error(err);
logger.warn('Offending object: ', obj);
}
};
events.on('sendSocket', sendSocketHandler);
ws.on('message', function(message) {
console.log('received:', message);
if (message === 'update') {
events.emit('update');
}
});
ws.on('close', function(reasonCode, description) {
logger.info((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
events.removeListener('sendSocket', sendSocketHandler);
});
});
return module;
};