kannon/classes/EventParser.js
2022-04-14 14:23:41 +02:00

31 lines
No EOL
762 B
JavaScript

const { EVENT_DELIMITER } = require('../libs/constants.js');
const EventEmitter = require('events');
class EventParser extends EventEmitter {
constructor() {
super();
this.buffer = '';
}
parse(data, socket) {
if (data === undefined) {
return;
}
this.buffer += data;
const indexOfEnd = this.buffer.indexOf(EVENT_DELIMITER);
if (indexOfEnd === -1) {
return;
}
const event = JSON.parse(this.buffer.substring(0, indexOfEnd));
this.buffer = '';
if (event.id === undefined) {
return;
}
const eventId = event.id.toLowerCase();
this.emit(eventId, event.data, socket);
}
}
module.exports = EventParser;