UNPKG

omelop-base-gate

Version:

omelop base gate plugin

48 lines 3.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GateHandler = void 0; const crypto_1 = require("crypto"); const common_1 = require("../common"); // 网关处理 class GateHandler { constructor(app) { this.app = app; } hashDispatch(id, servers) { if (servers.length === 0) { return; } if (id === null || id === undefined) { return servers[0]; } if (typeof (id) !== 'string') { id = String(id); } let md5 = (0, crypto_1.createHash)('md5').update(id).digest('hex'); let hash = parseInt(md5.substr(0, 8), 16); return servers[hash % servers.length]; } // 查询该用哪个connector async queryEntry(msg, session) { // console.log("queryEntry" + msg.openid); let openid = msg.openid; if (!openid) { return { code: common_1.Code.FAIL }; } let connectors = this.app.getServersByType('connector'); if (!connectors || connectors.length === 0) { return { code: common_1.Code.FA_NO_SERVER_AVAILABLE }; } let res = this.hashDispatch(openid, connectors); let connectorHost = { code: common_1.Code.OK, host: res.clientHost, port: res.clientPort, openid: openid, hash: '' }; // 计算出hash给connector验证 connectorHost.hash = common_1.common.calcConnectorHostHash(connectorHost); return connectorHost; } } exports.GateHandler = GateHandler; function default_1(app) { return new GateHandler(app); } exports.default = default_1; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZGxlci9nYXRlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxtQ0FBb0M7QUFDcEMsc0NBQXdEO0FBR3hELE9BQU87QUFDUCxNQUFhLFdBQVc7SUFDcEIsWUFBb0IsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUVwQyxDQUFDO0lBR0QsWUFBWSxDQUFDLEVBQVUsRUFBRSxPQUFxQjtRQUMxQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUVELElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQzFCLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkI7UUFDRCxJQUFJLEdBQUcsR0FBRyxJQUFBLG1CQUFVLEVBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFMUMsT0FBTyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUF1QixFQUFFLE9BQXdCO1FBQ3JFLDBDQUEwQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtRQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxhQUFhLEdBQUcsRUFBRSxJQUFJLEVBQUUsYUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM1RyxzQkFBc0I7UUFDdEIsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFNLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztDQUNKO0FBM0NELGtDQTJDQztBQUVELG1CQUF5QixHQUFnQjtJQUNyQyxPQUFPLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFGRCw0QkFFQyJ9