gateHandler.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict';
  2. var _ = require('lodash');
  3. var C = require('../../../../share/constant');
  4. var Handler = function(app){
  5. this.app = app;
  6. };
  7. module.exports = function(app){
  8. return new Handler(app);
  9. };
  10. var proto = Handler.prototype;
  11. proto.getConnector = function(msg, session, next){
  12. var servers = this.app.getServersByType('connector');
  13. ////检查不可用的connector端口
  14. delete require.cache[require.resolve('../../../config/bkyconnets')];
  15. let bkyports = require('../../../config/bkyconnets').bkyports || [];
  16. if(bkyports && bkyports.length > 0){
  17. console.warn("-bky.bkyports ",bkyports);
  18. let newList = [];
  19. for (var i = 0; i < servers.length; i++) {
  20. if(bkyports.indexOf(servers[i].clientPort) == -1){
  21. newList[newList.length] = servers[i];
  22. }
  23. }
  24. servers = [];
  25. for (var i = 0; i < newList.length; i++) {
  26. servers[servers.length] = newList[i];
  27. }
  28. }
  29. var server = _.sample(servers);
  30. if(!server){
  31. return next(null, {code: C.ERROR, msg: C.GATE_NO_CONNECTOR});
  32. }
  33. // console.warn("getConnector "+" host:+ " +server.clientHost+" port: "+server.clientPort);
  34. var data = {code: C.OK, data: {host: server.clientHost, port: server.clientPort}};
  35. next(null, data);
  36. };