omelop
Version:
[](https://travis-ci.org/node-omelop/omelop)
57 lines • 4.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const omelop_protocol_1 = require("omelop-protocol");
const omelop_logger_1 = require("omelop-logger");
const path = require("path");
let logger = (0, omelop_logger_1.getLogger)('omelop', path.basename(__filename));
let handlers = {};
let ST_INITED = 0;
let ST_WAIT_ACK = 1;
let ST_WORKING = 2;
let ST_CLOSED = 3;
let handleHandshake = function (socket, pkg) {
if (socket.state !== ST_INITED) {
return;
}
try {
socket.emit('handshake', JSON.parse(omelop_protocol_1.Protocol.strdecode(pkg.body)));
}
catch (ex) {
socket.emit('handshake', {});
}
};
let handleHandshakeAck = function (socket, pkg) {
if (socket.state !== ST_WAIT_ACK) {
return;
}
socket.state = ST_WORKING;
socket.emit('heartbeat');
};
let handleHeartbeat = function (socket, pkg) {
if (socket.state !== ST_WORKING) {
return;
}
socket.emit('heartbeat');
};
let handleData = function (socket, pkg) {
if (socket.state !== ST_WORKING) {
return;
}
socket.emit('message', pkg);
};
handlers[omelop_protocol_1.Package.TYPE_HANDSHAKE] = handleHandshake;
handlers[omelop_protocol_1.Package.TYPE_HANDSHAKE_ACK] = handleHandshakeAck;
handlers[omelop_protocol_1.Package.TYPE_HEARTBEAT] = handleHeartbeat;
handlers[omelop_protocol_1.Package.TYPE_DATA] = handleData;
function default_1(socket, pkg) {
let handler = handlers[pkg.type];
if (!!handler) {
handler(socket, pkg);
}
else {
logger.error('could not find handle invalid data package.');
socket.disconnect();
}
}
exports.default = default_1;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9jb25uZWN0b3JzL2NvbW1vbi9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQW9EO0FBQ3BELGlEQUEwQztBQUUxQyw2QkFBNkI7QUFDN0IsSUFBSSxNQUFNLEdBQUcsSUFBQSx5QkFBUyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFHNUQsSUFBSSxRQUFRLEdBQW1FLEVBQUUsQ0FBQztBQUVsRixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDbEIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQUNuQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFFbEIsSUFBSSxlQUFlLEdBQUcsVUFBVSxNQUFlLEVBQUUsR0FBUTtJQUNyRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzVCLE9BQU87S0FDVjtJQUNELElBQUk7UUFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEU7SUFBQyxPQUFPLEVBQUUsRUFBRTtRQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQ2hDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsSUFBSSxrQkFBa0IsR0FBRyxVQUFVLE1BQWUsRUFBRSxHQUFRO0lBQ3hELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7UUFDOUIsT0FBTztLQUNWO0lBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7SUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFRixJQUFJLGVBQWUsR0FBRyxVQUFVLE1BQWUsRUFBRSxHQUFRO0lBQ3JELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDN0IsT0FBTztLQUNWO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFFRixJQUFJLFVBQVUsR0FBRyxVQUFVLE1BQWUsRUFBRSxHQUFRO0lBQ2hELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDN0IsT0FBTztLQUNWO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsUUFBUSxDQUFDLHlCQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsZUFBZSxDQUFDO0FBQ25ELFFBQVEsQ0FBQyx5QkFBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsa0JBQWtCLENBQUM7QUFDMUQsUUFBUSxDQUFDLHlCQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsZUFBZSxDQUFDO0FBQ25ELFFBQVEsQ0FBQyx5QkFBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztBQUV6QyxtQkFBeUIsTUFBZSxFQUFFLEdBQVE7SUFDOUMsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7UUFDWCxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO1NBQU07UUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBQ3ZCO0FBQ0wsQ0FBQztBQVJELDRCQVFDIn0=