2017-07-14 70 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

相關問題