2017-07-14 68 views
0

应用的NodeJS我有两个应用程序A和B节点JS和应用B想要自动检测没有端口号的依赖

现在申请一个在运行时动态地选择它的端口与应用A.沟通。那么应用程序B如何发现哪个端口应用程序A正在运行?

+0

您需要在静态端口之间使用一些介体。应用程序'A'可以在调解器中注册自己,然后应用程序'B'可以请求应用程序'A'的端口。 –

回答

0

你可以开始你的服务器中明确,将采取口的护理used.if你看到这个错误,那么只需更改端口号动态,这将是前处理中应用一种ECONNREFUSED事件和应用B对于这两个应用程序都是true

0

我做了一些调查研究,并与解决方案,它是“DNS发现”“openport”

先检查使用“openport”,然后哪个端口是在你的系统的开放上来使用“dns-discoverry”

应用程序A

var op = require('openport'); 
op.find(
    { 
     startingPort: 8050, 
     endingPort: 8999 
    }, 
    function (err, port) { 
     if (err) { console.log(err); return; } 
     console.log('opened port is:::::::::' + port); 
     ServerStart(port); 
    } 
); 

function ServerStart(port) { 
    var discovery = require('dns-discovery'); 
    var disc = discovery(); 
    disc.announce('connect-apps', port, function() { 
     console.log("announcement start") 
    }); 
    var io = require('socket.io')(port); 

    io.on('connection', function (socket) { 
     socket.on('message', function (msg) { 
      console.log("Response From Client::::::::::::" + msg); 
      socket.send("Congratulations from Server"); 
     }); 
     socket.on('disconnect', function (msg) { 
      console.log("We are disconnected"); 
     }); 
    }) 
} 

应用B

var discovery = require('dns-discovery') 
var disc = discovery() 
disc.lookup('connect-apps', function() { 
    console.log('Server Lookup Started:::::::::::::::::::') 
}) 
disc.on('peer', function (name, peer) { 
    console.log("Server found:::::::::" + peer.host + ':::' + peer.port); 
    var ws = 'ws://' + peer.host + ':' + peer.port; 
    var socket = require('socket.io-client')(ws, { forceNew: true }); 
    socket.io.opts.transports = ['polling', 'websocket']; 
    socket.on('connect', function() { 
     console.log('connected'); 
     socket.send('Hello from Client 1::::::::Vishal Shori Machine'); 
    }); 
    socket.on('message', function (msg) { 
     console.log("response again::::::::::::" + msg); 
    }); 
    disc.destroy(); 
}) 

对于参考:

https://www.npmjs.com/package/openport

https://github.com/mafintosh/dns-discovery

相关问题