@lskjs/server
Version:
LSK server.
138 lines (103 loc) • 14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _dns = _interopRequireDefault(require("dns"));
var _socket = _interopRequireDefault(require("socket.io-redis"));
var _bluebird = _interopRequireDefault(require("bluebird"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var dnsLookup = _bluebird["default"].promisify(_dns["default"].lookup);
function _default() {
return _ref.apply(this, arguments);
}
function _ref() {
_ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
var _this = this;
var pubClient, subClient, DEBUG, reconnectTime, pubAddress, subAddress;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", false);
case 6:
pubAddress = _context.sent;
DEBUG && console.log("pub redis address ".concat(pubAddress), "instance ".concat(__INSTANCE)); //eslint-disable-line
_context.next = 10;
return new _bluebird["default"](function (resolve) {
DEBUG && console.log('pub config', "instance ".concat(__INSTANCE), _this.config.redis); //eslint-disable-line
pubClient = redis.createClient(_objectSpread(_objectSpread({}, _this.config.redis), {}, {
retry_strategy: function retry_strategy(options) {
DEBUG && console.log('pub error', "instance ".concat(__INSTANCE), options); //eslint-disable-line
if (!options.error) {
DEBUG && console.log('redis упал (pub), надо перезапуститься без него'); //eslint-disable-line
process.exit(1);
} else if (options.error && ['EHOSTUNREACH', 'ECONNREFUSED'].includes(options.error.code)) {
DEBUG && console.log("try reconnect pub after ".concat(reconnectTime)); //eslint-disable-line
return 5000;
}
return undefined;
}
}));
pubClient.on('connect', function () {
DEBUG && console.log('pub connected'); //eslint-disable-line
resolve();
});
});
case 10:
_context.next = 12;
return _bluebird["default"].delay(1000);
case 12:
_context.next = 14;
return _dns["default"].lookup(this.config.redis.host);
case 14:
subAddress = _context.sent;
DEBUG && console.log("sub redis address ".concat(subAddress), "instance ".concat(__INSTANCE)); //eslint-disable-line
_context.next = 18;
return new _bluebird["default"](function (resolve) {
DEBUG && console.log('sub config', "instance ".concat(__INSTANCE), _this.config.redis); //eslint-disable-line
subClient = redis.createClient(_objectSpread(_objectSpread({}, _this.config.redis), {}, {
retry_strategy: function retry_strategy(options) {
DEBUG && console.log('sub error', "instance ".concat(__INSTANCE), options); //eslint-disable-line
if (!options.error) {
DEBUG && console.log('redis упал (sub), надо перезапуститься без него'); //eslint-disable-line
process.exit(1);
} else if (options.error && ['EHOSTUNREACH', 'ECONNREFUSED'].includes(options.error.code)) {
DEBUG && console.log("try reconnect sub after ".concat(reconnectTime)); //eslint-disable-line
return 5000;
}
return undefined;
}
}));
subClient.on('connect', function () {
DEBUG && console.log('sub connected'); //eslint-disable-line
resolve();
});
});
case 18:
this.ws.adapter((0, _socket["default"])({
pubClient: pubClient,
subClient: subClient
}));
_context.next = 24;
break;
case 21:
_context.prev = 21;
_context.t0 = _context["catch"](3);
DEBUG && console.log('redis err', _context.t0); //eslint-disable-line
case 24:
case "end":
return _context.stop();
}
}
}, _callee, this, [[3, 21]]);
}));
return _ref.apply(this, arguments);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXRob2RzL3J1blJlZGlzLmpzIl0sIm5hbWVzIjpbImRuc0xvb2t1cCIsIlByb21pc2UiLCJwcm9taXNpZnkiLCJkbnMiLCJsb29rdXAiLCJwdWJBZGRyZXNzIiwiREVCVUciLCJjb25zb2xlIiwibG9nIiwiX19JTlNUQU5DRSIsInJlc29sdmUiLCJjb25maWciLCJyZWRpcyIsInB1YkNsaWVudCIsImNyZWF0ZUNsaWVudCIsInJldHJ5X3N0cmF0ZWd5Iiwib3B0aW9ucyIsImVycm9yIiwicHJvY2VzcyIsImV4aXQiLCJpbmNsdWRlcyIsImNvZGUiLCJyZWNvbm5lY3RUaW1lIiwidW5kZWZpbmVkIiwib24iLCJkZWxheSIsImhvc3QiLCJzdWJBZGRyZXNzIiwic3ViQ2xpZW50Iiwid3MiLCJhZGFwdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7Ozs7O0FBRUEsSUFBTUEsU0FBUyxHQUFHQyxxQkFBUUMsU0FBUixDQUFrQkMsZ0JBQUlDLE1BQXRCLENBQWxCOzs7Ozs7O3VGQUVlO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDZDQUNOLEtBRE07O0FBQUE7QUFPTEMsWUFBQUEsVUFQSztBQVFUQyxZQUFBQSxLQUFLLElBQUlDLE9BQU8sQ0FBQ0MsR0FBUiw2QkFBaUNILFVBQWpDLHNCQUEyREksVUFBM0QsRUFBVCxDQVJTLENBUTJFOztBQVIzRTtBQUFBLG1CQVNMLElBQUlSLG9CQUFKLENBQVksVUFBQ1MsT0FBRCxFQUFhO0FBQzNCSixjQUFBQSxLQUFLLElBQUlDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLFlBQVoscUJBQXNDQyxVQUF0QyxHQUFvRCxLQUFJLENBQUNFLE1BQUwsQ0FBWUMsS0FBaEUsQ0FBVCxDQUQyQixDQUN1RDs7QUFDcEZDLGNBQUFBLFNBQVMsR0FBR0QsS0FBSyxDQUFDRSxZQUFOLGlDQUNQLEtBQUksQ0FBQ0gsTUFBTCxDQUFZQyxLQURMO0FBRVZHLGdC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SUFBSUMsT0FBTyxDQUFDQyxHQUFSLENBQVksZUFBWixDQUFULENBRDBCLENBQ2M7O0FBQzFDRSxnQkFBQUEsT0FBTztBQUNSLGVBSEQ7QUFJRCxhQXBCSyxDQWpDSzs7QUFBQTtBQXNEWCxpQkFBS21CLEVBQUwsQ0FBUUMsT0FBUixDQUFnQix3QkFBYTtBQUFFakIsY0FBQUEsU0FBUyxFQUFUQSxTQUFGO0FBQWFlLGNBQUFBLFNBQVMsRUFBVEE7QUFBYixhQUFiLENBQWhCO0FBdERXO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBd0RUdEIsWUFBQUEsS0FBSyxJQUFJQyxPQUFPLENBQUNDLEdBQVIsQ0FBWSxXQUFaLGNBQVQsQ0F4RFMsQ0F3RGdDOztBQXhEaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkbnMgZnJvbSAnZG5zJztcbmltcG9ydCByZWRpc0FkYXB0ZXIgZnJvbSAnc29ja2V0LmlvLXJlZGlzJztcbi8vIGltcG9ydCByZWRpcyBmcm9tICdyZWRpcyc7XG5pbXBvcnQgUHJvbWlzZSBmcm9tICdibHVlYmlyZCc7XG5cbmNvbnN0IGRuc0xvb2t1cCA9IFByb21pc2UucHJvbWlzaWZ5KGRucy5sb29rdXApO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmYWxzZVxuICBsZXQgcHViQ2xpZW50O1xuICBsZXQgc3ViQ2xpZW50O1xuICBjb25zdCBERUJVRyA9IHRoaXMuY29uZmlnLnJlZGlzLmRlYnVnO1xuICBjb25zdCByZWNvbm5lY3RUaW1lID0gNTAwMDtcbiAgdHJ5IHtcbiAgICBjb25zdCBwdWJBZGRyZXNzID0gYXdhaXQgZG5zTG9va3VwKHRoaXMuY29uZmlnLnJlZGlzLmhvc3QpO1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coYHB1YiByZWRpcyBhZGRyZXNzICR7cHViQWRkcmVzc31gLCBgaW5zdGFuY2UgJHtfX0lOU1RBTkNFfWApOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ3B1YiBjb25maWcnLCBgaW5zdGFuY2UgJHtfX0lOU1RBTkNFfWAsIHRoaXMuY29uZmlnLnJlZGlzKTsgIC8vZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgcHViQ2xpZW50ID0gcmVkaXMuY3JlYXRlQ2xpZW50KHtcbiAgICAgICAgLi4udGhpcy5jb25maWcucmVkaXMsXG4gICAgICAgIHJldHJ5X3N0cmF0ZWd5OiAob3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ3B1YiBlcnJvcicsIGBpbnN0YW5jZSAke19fSU5TVEFOQ0V9YCwgb3B0aW9ucyk7ICAvL2VzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXJyb3IpIHtcbiAgICAgICAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ3JlZGlzINGD0L/QsNC7IChwdWIpLCDQvdCw0LTQviDQv9C10YDQtdC30LDQv9GD0YHRgtC40YLRjNGB0Y8g0LHQtdC3INC90LXQs9C+Jyk7ICAvL2VzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZXJyb3IgJiYgWydFSE9TVFVOUkVBQ0gnLCAnRUNPTk5SRUZVU0VEJ10uaW5jbHVkZXMob3B0aW9ucy5lcnJvci5jb2RlKSkge1xuICAgICAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhgdHJ5IHJlY29ubmVjdCBwdWIgYWZ0ZXIgJHtyZWNvbm5lY3RUaW1lfWApOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgICByZXR1cm4gNTAwMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcHViQ2xpZW50Lm9uKCdjb25uZWN0JywgKCkgPT4ge1xuICAgICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKCdwdWIgY29ubmVjdGVkJyk7ICAvL2VzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5kZWxheSgxMDAwKTtcbiAgICBjb25zdCBzdWJBZGRyZXNzID0gYXdhaXQgZG5zLmxvb2t1cCh0aGlzLmNvbmZpZy5yZWRpcy5ob3N0KTtcbiAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKGBzdWIgcmVkaXMgYWRkcmVzcyAke3N1YkFkZHJlc3N9YCwgYGluc3RhbmNlICR7X19JTlNUQU5DRX1gKTsgIC8vZXNsaW50LWRpc2FibGUtbGluZVxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKCdzdWIgY29uZmlnJywgYGluc3RhbmNlICR7X19JTlNUQU5DRX1gLCB0aGlzLmNvbmZpZy5yZWRpcyk7ICAvL2VzbGludC1kaXNhYmxlLWxpbmVcbiAgICAgIHN1YkNsaWVudCA9IHJlZGlzLmNyZWF0ZUNsaWVudCh7XG4gICAgICAgIC4uLnRoaXMuY29uZmlnLnJlZGlzLFxuICAgICAgICByZXRyeV9zdHJhdGVneTogKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKCdzdWIgZXJyb3InLCBgaW5zdGFuY2UgJHtfX0lOU1RBTkNFfWAsIG9wdGlvbnMpOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgaWYgKCFvcHRpb25zLmVycm9yKSB7XG4gICAgICAgICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKCdyZWRpcyDRg9C/0LDQuyAoc3ViKSwg0L3QsNC00L4g0L/QtdGA0LXQt9Cw0L/Rg9GB0YLQuNGC0YzRgdGPINCx0LXQtyDQvdC10LPQvicpOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmVycm9yICYmIFsnRUhPU1RVTlJFQUNIJywgJ0VDT05OUkVGVVNFRCddLmluY2x1ZGVzKG9wdGlvbnMuZXJyb3IuY29kZSkpIHtcbiAgICAgICAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coYHRyeSByZWNvbm5lY3Qgc3ViIGFmdGVyICR7cmVjb25uZWN0VGltZX1gKTsgIC8vZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgICAgICAgcmV0dXJuIDUwMDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHN1YkNsaWVudC5vbignY29ubmVjdCcsICgpID0+IHtcbiAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZygnc3ViIGNvbm5lY3RlZCcpOyAgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMud3MuYWRhcHRlcihyZWRpc0FkYXB0ZXIoeyBwdWJDbGllbnQsIHN1YkNsaWVudCB9KSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ3JlZGlzIGVycicsIGVycik7ICAvL2VzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxufVxuIl19
//# sourceMappingURL=runRedis.js.map