module.exports = class PythonSender { constructor(p = 9875){ const WebSocket = require('ws'); this.sockets = []; this.server = new WebSocket.Server({port: p}); this.server.on('connection', (socket) => this.connectThis(socket)); } msgThis(msg){ console.log("message:" + msg.toString()) this.sockets.forEach(s => s.send(msg)); } closeThis(socket){ console.log("Python Receiver is closing the connection"); this.sockets = this.sockets.filter(s => s !== socket); } connectThis(socket) { console.log("Python Receiver is connected") this.sockets.push(socket); // When you receive a message, send that message to every socket. socket.on('message', (msg) => this.msgThis(msg)); // When a socket closes, or disconnects, remove it from the array. socket.on('close', () => this.closeThis(socket)); } send(m){ if((this.sockets.length) > 0){ this.sockets.forEach( s => s.send(m)); } else{ console.warn("No sockets connected. Can't send the Message.");} } /* if(this.pythonSender != null){ var strJSON = CANCreator.cmdMovement(this.motorPositionOld, this.motorPosition); if(strJSON != '{"message":"empty"}'){ this.pythonSender.send(strJSON); } } */ }