54 lines
1.5 KiB
JavaScript
Executable File
54 lines
1.5 KiB
JavaScript
Executable File
|
|
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);
|
|
}
|
|
}
|
|
|
|
*/
|
|
}
|
|
|
|
|