build: update

This commit is contained in:
Micooz 2017-08-14 17:27:25 +08:00
parent ba20196bb3
commit e8ccc63d39
3 changed files with 5 additions and 5 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
'use strict';Object.defineProperty(exports,'__esModule',{value:true});exports.Hub=undefined;var _cluster=require('cluster');var _cluster2=_interopRequireDefault(_cluster);var _events=require('events');var _events2=_interopRequireDefault(_events);var _net=require('net');var _net2=_interopRequireDefault(_net);var _logger=require('./logger');var _logger2=_interopRequireDefault(_logger);var _config=require('./config');var _socket=require('./socket');var _balancer=require('./balancer');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}const nextId=function(){let i=0;return()=>{if(i>Number.MAX_SAFE_INTEGER-1){i=0}return++i}}();class Hub extends _events2.default{constructor(config){super();this._isFirstWorker=_cluster2.default.worker.id<=1;this._hub=null;this._sockets=[];this._isClosed=false;if(typeof config!=='undefined'){_config.Config.init(config)}_logger2.default.level=__LOG_LEVEL__;this._hub=_net2.default.createServer();this._hub.on('close',this.onClose.bind(this));this._hub.on('connection',this.onConnect.bind(this));this.onSocketClose=this.onSocketClose.bind(this)}onClose(){if(!this._isClosed){this._isFirstWorker&&_logger2.default.info('==> [hub] shutdown');if(__IS_CLIENT__){_balancer.Balancer.destroy();this._isFirstWorker&&_logger2.default.info('==> [balancer] stopped')}this._isClosed=true;this._sockets.forEach(socket=>socket.destroy());this._sockets=[];this.emit('close')}}onSocketClose(_id){this._sockets=this._sockets.filter(({id})=>_id!==id);this.emit('socketClose')}onConnect(socket){const id=nextId();const sok=new _socket.Socket({socket});sok.on('close',()=>this.onSocketClose(id));sok.on('stat',(...props)=>this.emit('socketStat',...props));this._sockets.push(sok);_logger2.default.info(`[hub] [${socket.remoteAddress}:${socket.remotePort}] connected`)}run(callback){const options={host:__LOCAL_HOST__,port:__LOCAL_PORT__};this._hub.listen(options,()=>{if(this._isFirstWorker){_logger2.default.info(`==> [hub] use configuration: ${JSON.stringify(__ALL_CONFIG__)}`);_logger2.default.info(`==> [hub] running as: ${__IS_SERVER__?'Server':'Client'}`);_logger2.default.info(`==> [hub] listening on: ${JSON.stringify(this._hub.address())}`)}if(__IS_CLIENT__){this._isFirstWorker&&_logger2.default.info('==> [balancer] started');_balancer.Balancer.start(__SERVERS__)}if(typeof callback==='function'){callback()}})}terminate(){this._hub.close();this.onClose()}}exports.Hub=Hub;
'use strict';Object.defineProperty(exports,'__esModule',{value:true});exports.Hub=undefined;var _cluster=require('cluster');var _cluster2=_interopRequireDefault(_cluster);var _events=require('events');var _events2=_interopRequireDefault(_events);var _net=require('net');var _net2=_interopRequireDefault(_net);var _logger=require('./logger');var _logger2=_interopRequireDefault(_logger);var _config=require('./config');var _socket=require('./socket');var _balancer=require('./balancer');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}const nextId=function(){let i=0;return()=>{if(i>Number.MAX_SAFE_INTEGER-1){i=0}return++i}}();class Hub extends _events2.default{constructor(config){super();this._isFirstWorker=_cluster2.default.worker?_cluster2.default.worker.id<=1:true;this._hub=null;this._sockets=[];this._isClosed=false;if(typeof config!=='undefined'){_config.Config.init(config)}_logger2.default.level=__LOG_LEVEL__;this._hub=_net2.default.createServer();this._hub.on('close',this.onClose.bind(this));this._hub.on('connection',this.onConnect.bind(this));this.onSocketClose=this.onSocketClose.bind(this)}onClose(){if(!this._isClosed){this._isFirstWorker&&_logger2.default.info('==> [hub] shutdown');if(__IS_CLIENT__){_balancer.Balancer.destroy();this._isFirstWorker&&_logger2.default.info('==> [balancer] stopped')}this._isClosed=true;this._sockets.forEach(socket=>socket.destroy());this._sockets=[];this.emit('close')}}onSocketClose(_id){this._sockets=this._sockets.filter(({id})=>_id!==id);this.emit('socketClose')}onConnect(socket){const id=nextId();const sok=new _socket.Socket({socket});sok.on('close',()=>this.onSocketClose(id));sok.on('stat',(...props)=>this.emit('socketStat',...props));this._sockets.push(sok);_logger2.default.info(`[hub] [${socket.remoteAddress}:${socket.remotePort}] connected`)}run(callback){const options={host:__LOCAL_HOST__,port:__LOCAL_PORT__};this._hub.listen(options,()=>{if(this._isFirstWorker){_logger2.default.info(`==> [hub] use configuration: ${JSON.stringify(__ALL_CONFIG__)}`);_logger2.default.info(`==> [hub] running as: ${__IS_SERVER__?'Server':'Client'}`);_logger2.default.info(`==> [hub] listening on: ${JSON.stringify(this._hub.address())}`)}if(__IS_CLIENT__){this._isFirstWorker&&_logger2.default.info('==> [balancer] started');_balancer.Balancer.start(__SERVERS__)}if(typeof callback==='function'){callback()}})}terminate(){this._hub.close();this.onClose()}}exports.Hub=Hub;