UNPKG

omelot-base-gate

Version:

omelot base gate plugin

47 lines 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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 = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZGxlci9nYXRlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLG1DQUFvQztBQUNwQyxzQ0FBd0Q7QUFHeEQsT0FBTztBQUNQO0lBQ0ksWUFBb0IsR0FBZ0I7UUFBaEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUVwQyxDQUFDO0lBR0QsWUFBWSxDQUFDLEVBQVUsRUFBRSxPQUFxQjtRQUMxQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU87U0FDVjtRQUVELElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQzFCLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkI7UUFDRCxJQUFJLEdBQUcsR0FBRyxtQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLE9BQU8sT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNYLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBdUIsRUFBRSxPQUF3QjtRQUNyRSwwQ0FBMEM7UUFDMUMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1YsT0FBTyxFQUFDLElBQUksRUFBRSxhQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7U0FDM0I7UUFFRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxFQUFDLElBQUksRUFBRSxhQUFJLENBQUMsc0JBQXNCLEVBQUMsQ0FBQztTQUM5QztRQUVELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksYUFBYSxHQUFHLEVBQUMsSUFBSSxFQUFFLGFBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDM0csc0JBQXNCO1FBQ3RCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsZUFBTSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7Q0FDSjtBQTNDRCxrQ0EyQ0M7QUFFRCxtQkFBd0IsR0FBZ0I7SUFDcEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsNEJBRUMifQ==