Files
pezkuwi-telemetry/packages/backend/src/index.ts
T
2018-07-06 15:08:22 +02:00

31 lines
855 B
TypeScript

import * as WebSocket from 'ws';
import Node from './Node';
import Feed from './Feed';
import Aggregator from './Aggregator';
const aggregator = new Aggregator();
// WebSocket for Nodes feeding telemetry data to the server
const incomingTelemetry = new WebSocket.Server({ port: 1024 });
// WebSocket for web clients listening to the telemetry data aggregate
const telemetryFeed = new WebSocket.Server({ port: 8080 });
console.log('Telemetry server listening on port 1024');
console.log('Feed server listening on port 8080');
incomingTelemetry.on('connection', async (socket: WebSocket) => {
try {
const node = await Node.fromSocket(socket);
aggregator.addNode(node);
} catch (err) {
console.error(err);
}
});
telemetryFeed.on('connection', (socket: WebSocket) => {
aggregator.addFeed(new Feed(socket));
});