robotank/server-nodejs/websockets/monitor.ts

43 lines
1 KiB
TypeScript
Raw Normal View History

2025-03-03 02:17:50 +01:00
// SPDX-License-Identifier: GPL-3.0-or-later
// Author: Sascha Nitsch https://contentnation.net/@grumpydevelop
import { WebSocketServer } from "ws";
class MonitorWS extends WebSocketServer {
constructor(options: any) {
super(options);
const that = this;
this.on('connection', (ws: any) => {
ws.on('error', this.errorHandler);
ws.on('disconnect', this.errorHandler);
ws.on('message', function (this: WebSocket, data: Buffer, isBinary: boolean ){
that.message(this, data, isBinary);
});
// ...
ws.send("Connected");
});
}
errorHandler = (a: any,b: any, c:any) => {
console.log(a,b,c);
}
broadcast = (msg: string) => {
if (this.clients === undefined) {
return;
}
this.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {;
client.send(msg);
}
})
}
message = (ws: WebSocket, data: Buffer, isBinary:boolean) => {
//const message = data.toString();
//console.log('received monitor: ', message);
}
}
export { MonitorWS }