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