import {CLIENT_LATENCY} from '@/constants.js'; export default class Client { constructor() { this.listeners = {}; } accept(packet) { const listeners = this.listeners[packet.type]; if (!listeners) { return; } for (const i in listeners) { listeners[i](packet.payload); } } addPacketListener(type, listener) { if (!this.listeners[type]) { this.listeners[type] = []; } this.listeners[type].push(listener); } removePacketListener(type, listener) { const listeners = this.listeners[type]; if (!listeners) { return; } const index = listeners.indexOf(listener); if (-1 !== index) { listeners.splice(index, 1); } } send(packet) { if (CLIENT_LATENCY > 0) { setTimeout(() => { this.transmit(packet); }, CLIENT_LATENCY); } else { this.transmit(packet); } } }