42 lines
914 B
42 lines
914 B
import chalk from 'chalk';
|
|
import { Server } from 'socket.io';
|
|
|
|
interface DatabaseHas {
|
|
push(temp: number): void;
|
|
}
|
|
|
|
export class ServerSocket<T extends DatabaseHas> {
|
|
private io!: Server;
|
|
|
|
constructor(private path: string, private port: number, private database: T) {
|
|
this.initSocket();
|
|
this.connStatus();
|
|
}
|
|
|
|
private initSocket() {
|
|
this.io = new Server(this.port, {
|
|
path: this.path,
|
|
});
|
|
console.log(chalk.yellow('Initialized server...'));
|
|
}
|
|
|
|
private connStatus() {
|
|
this.io.on('connect', (socket) => {
|
|
console.log(chalk.green('Client connected!'));
|
|
|
|
socket.on('disconnect', () => {
|
|
console.log(chalk.red('Client disconected!'));
|
|
});
|
|
|
|
socket.on('temp', (temp: number) => {
|
|
this.database.push(temp);
|
|
});
|
|
});
|
|
}
|
|
|
|
closeSocket() {
|
|
this.io.close(() => {
|
|
console.log(chalk.red('Closing socket...'));
|
|
});
|
|
}
|
|
}
|
|
|