如何在Node.js中管理多个网络客户端

时间:2016-11-17 09:34:53

标签: node.js server client

对于我的家庭自动化系统,我想创建一个可以使用net.connect()连接到多个服务器的NodeJS服务。

我不知道如何管理该项目,目前我能够连接到一台服务器(发送和接收数据),该部分运行良好。

每个客户端都有一个id和name作为属性。

我认为我需要一系列网络客户端,但我找不到一个很好的教程来实现这一目标。

1 个答案:

答案 0 :(得分:1)

我设法使事情有效。

首先声明要存储客户端的东西和connect方法:

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

这实际上对我的projetc运行良好,随时讨论这个解决方案,谢谢你的帮助。