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