2016-11-17 3 views
1

Для моей системы домашней автоматизации я хотел бы создать службу NodeJS, которая может подключаться к нескольким серверам с помощью net.connect().Как управлять несколькими сетевыми клиентами в Node.js

Я понятия не имею, как управлять этим проектом, на данный момент я могу подключиться к одному серверу (отправьтеполучить данные), эта часть работает хорошо.

Каждый клиент будет иметь идентификатор и имя как свойства.

Я думаю, мне нужен массив сетевых клиентов, но я не могу найти хороший учебник, чтобы получить эту работу.

ответ

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); 

И, чтобы удалить один, может быть, мы можем сделать это в лучшую сторону, возможно, получая Id (?):

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

Это действительно хорошо работает для моего проекта, не стесняйтесь диск uss это решение, спасибо за помощь.