Я пытаюсь получить данные от нескольких датчиков и показать их на графике с помощью socket.io, и я не знаю, как я могу сделать это масштабируемым в Node.js Express.
Я сделал это с одним датчиком, но яхочу дублироваться при добавлении нового датчика
app.set('socket.io',io);
var io = require('socket.io')(server);
const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline;
const port = new SerialPort('COM4'); //Connect serial port to port COM3. Because my Arduino Board is connected on port COM3. See yours on Arduino IDE -> Tools -> Port
const parser = port.pipe(new Readline({delimiter: ',\r\n'})); //Read the line only when new line comes.
parser.on('data', (temp) => { //Read data
console.log(temp);
var today = new Date();
io.sockets.emit('temp', {date: today.getDate()+"-"+today.getMonth()+"-"+today.getFullYear(), time: (today.getHours())+":"+(today.getMinutes()+":"+ today.getMilliseconds()), temp: temp.split(",")}); //emit the datd i.e. {date, time, temp} to all the connected clients
var sensor = new SensorPost({status: temp});
sensor.save();
});
io.on('connection', (socket) => {
console.log("Someone connected.");
});
Например, я ввожу имя датчика и порт в базу данных, а затем функция читает эти данные и создает новый socket.emit