mirror of
https://github.com/Aviortheking/Puissance4.git
synced 2025-04-22 02:42:16 +00:00
38 lines
968 B
TypeScript
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))
|
|
}
|
|
}
|