2016-11-17 70 views
1

對於我的家庭自動化系統,我想創建一個NodeJS服務,該服務可以使用net.connect()連接到多個服務器。如何在Node.js中管理多個網絡客戶端

我不知道如何管理該projet,目前我能夠連接到一臺服務器(發送&接收數據),該部分運作良好。

每個客戶端都有一個ID和名稱作爲屬性。

我想我需要一個網絡客戶端的數組,但我找不到一個好的教程來得到這個工作。

回答

1

我設法讓事情奏效。

首先聲明的東西給客戶存入和連接方法:

var nodes = []; 

var node; 
node = new events.EventEmitter(); // Maybe we can use something else ? 

node.connect = function (id, name, host, port) { 
    var node = net.connect({host:host, port:port}); 
    node.id = id; 
    node.name = name; 
    node. 
    on('connect', function() { 
     // we are connected 
     node.is_connected = true; 
    }). 
    on('close', function() { 
     // we are closed 
     node.is_connected = false; 
     node.destroy(); 
    }). 
    on('error', function (err) { 
     // there is an error 
    }). 
    on('data', function (data) { 
     // we have data 
    }); 
    // add thos new node to storage 
    nodes.push(node); 
} 

添加一個新的節點:

node.connect(id, name, host, port); 

,並刪除一個,也許我們能以更好的方式做到這一點,也許通過標識得到(?):

for (var i = 0, len = nodes.length; i < len; i++) { 
    if (nodes[i].id == id) { 
     nodes[i].destroy(); 
     nodes.splice(i, 1); 
     break; 
    } 
} 

這實際上是對我的projetc運作良好,隨意盤這個解決方案,謝謝你的幫助。