在Node.JS中管理多个TCP客户端

时间:2014-11-07 13:39:12

标签: javascript node.js

我正在编写一个Node.JS应用程序,它连接到多个不同的服务器并等待来自它们的数据。但是,我不确定在Node中使用它的最佳方法。如何管理来自多个套接字客户端的“数据”事件?当事件处理程序触发新数据时,如何将其与连接的服务器相关联?谢谢!

1 个答案:

答案 0 :(得分:0)

来自节点网站nodejs.org

  

Node为每个服务器维护多个连接以发出HTTP请求。   此功能允许用户透明地发出请求。

每当您致电http.request时,它都会为该请求创建一个新的http.ClientRequest,因此以下代码可以正常运行:

var options1 = {hostname: 'www.google.com', port: 80, path: '/', method: 'GET'};
var options2 = {hostname: 'en.wikipedia.com', port: 80, path: '/', method: 'GET'};

var req1 = http.request(options1, function(res) {
    console.log('STATUS Req1: ' + res.statusCode);
    console.log('HEADERS Req1: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('BODY Req1: ' + chunk);
    });
});
var req2 = http.request(options2, function(res) {
    console.log('STATUS Req2: ' + res.statusCode);
    console.log('HEADERS Req2: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('BODY Req2: ' + chunk);
    });
});

req1.on('error', function(e) {
  console.log('problem with request1: ' + e.message);
});
req2.on('error', function(e) {
  console.log('problem with request2: ' + e.message);
});

// write data to request body
req1.write('data\n');
req1.write('data\n');
req1.end();

req2.write('data\n');
req2.write('data\n');
req2.end();