export default class ConnectionManager {
  private webSocket: any

  constructor(path?: string) {
    this.webSocket = new WebSocket(path)
  }

  send(payload: any) {
    if (this.webSocket.readyState === 1) {
      this.webSocket.send(payload)
    }
  }

  on(event: "open" | "close" | "message", callback: any) {
    if (event === "open") {
      this.webSocket.onopen = callback
    } else if (event === "message") {
      this.webSocket.onmessage = (evt) => callback(evt.data)
    }
  }

  close() {
    this.webSocket.close()
  }
}
