1
對於我的家庭自動化系統,我想創建一個NodeJS服務,該服務可以使用net.connect()連接到多個服務器。如何在Node.js中管理多個網絡客戶端
我不知道如何管理該projet,目前我能夠連接到一臺服務器(發送&接收數據),該部分運作良好。
每個客戶端都有一個ID和名稱作爲屬性。
我想我需要一個網絡客戶端的數組,但我找不到一個好的教程來得到這個工作。
對於我的家庭自動化系統,我想創建一個NodeJS服務,該服務可以使用net.connect()連接到多個服務器。如何在Node.js中管理多個網絡客戶端
我不知道如何管理該projet,目前我能夠連接到一臺服務器(發送&接收數據),該部分運作良好。
每個客戶端都有一個ID和名稱作爲屬性。
我想我需要一個網絡客戶端的數組,但我找不到一個好的教程來得到這個工作。
我設法讓事情奏效。
首先聲明的東西給客戶存入和連接方法:
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運作良好,隨意盤這個解決方案,謝謝你的幫助。