omelop
Version:
[](https://travis-ci.org/node-omelop/omelop)
40 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TCPProcessor = void 0;
const events_1 = require("events");
const utils = require("../../util/utils");
const tcpsocket_1 = require("./tcpsocket");
let ST_STARTED = 1;
let ST_CLOSED = 2;
// private protocol, no need exports
let HEAD_SIZE = 4;
/**
* websocket protocol processor
*/
class TCPProcessor extends events_1.EventEmitter {
constructor(closeMethod) {
super();
this.closeMethod = closeMethod;
this.state = ST_STARTED;
}
add(socket, data) {
if (this.state !== ST_STARTED) {
return;
}
let tcpsocket = new tcpsocket_1.TcpSocket(socket, {
headSize: HEAD_SIZE,
headHandler: utils.headHandler,
closeMethod: this.closeMethod
});
this.emit('connection', tcpsocket);
socket.emit('data', data);
}
close() {
if (this.state !== ST_STARTED) {
return;
}
this.state = ST_CLOSED;
}
}
exports.TCPProcessor = TCPProcessor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNwcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2Nvbm5lY3RvcnMvaHlicmlkL3RjcHByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBc0M7QUFHdEMsMENBQTBDO0FBQzFDLDJDQUF3QztBQUV4QyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDbkIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBRWxCLG9DQUFvQztBQUNwQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFFbEI7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxxQkFBWTtJQUcxQyxZQUFZLFdBQW1CO1FBQzNCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUNELEdBQUcsQ0FBQyxNQUFrQixFQUFFLElBQVk7UUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUMzQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2xDLFFBQVEsRUFBRSxTQUFTO1lBQ25CLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDaEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQzNCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQTNCRCxvQ0EyQkMifQ==