Puissance4/Websocket.ts
2020-12-18 17:28:51 +01:00

38 lines
968 B
TypeScript

import WebSocket from "ws";
import Connection from "./Connection";
import Listener from "./Listener";
/**
* Creation et export de la class Server hérité de Listener
*
*/
export default class Server extends Listener<{
connection: (connection: Connection) => void
open: () => void
}> {
private server: WebSocket.Server
/**
* Créer un serveur WebSocket
* Ecoute les emissions lors de l'ouverture d'une connection
* émet l'information de nouvelle connection lors d'une nouvelle connection
*/
public constructor(options: WebSocket.ServerOptions) {
super()
const server = new WebSocket.Server(options, () => this.emit('open'))
server.on('connection', (ws) => {
const connection = new Connection(ws)
this.emit('connection', connection)
})
this.server = server
}
/**
* Permet d'envoyer un message à tout les serveurs reliés
*/
public broadcast(message: string) {
this.server.clients.forEach((ws) => ws.send(message))
}
}