sprinklers3/server/sprinklersRpc/WebSocketApi.ts

27 lines
650 B
TypeScript
Raw Normal View History

import * as WebSocket from "ws";
import { ServerState } from "@server/state";
import { WebSocketConnection } from "./WebSocketConnection";
export class WebSocketApi {
2018-09-02 02:57:55 -06:00
state: ServerState;
clients: Set<WebSocketConnection> = new Set();
2018-09-02 02:57:55 -06:00
constructor(state: ServerState) {
this.state = state;
}
2018-09-02 02:57:55 -06:00
listen(webSocketServer: WebSocket.Server) {
webSocketServer.on("connection", this.handleConnection);
}
2018-09-02 02:57:55 -06:00
handleConnection = (socket: WebSocket) => {
const client = new WebSocketConnection(this, socket);
this.clients.add(client);
};
2018-09-02 02:57:55 -06:00
removeClient(client: WebSocketConnection) {
return this.clients.delete(client);
}
}