`
linmomo02
  • 浏览: 178967 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

浅谈对node.js http.agent的理解

阅读更多

node.js之火已经燃起。本文简单介绍一下自己在学习node.js过程中遇到的问题。

node.js的http模块使用了一个agent代理。如果你的http启动了keep-alive那么这个代理相当于一个连接池。

这个代理维护了一定数量的socket链接,当然都是短链接。http发起请求所用的socket都是通过代理获取的。

这样就省去了每次发起http请求是创建套接字的时间提高了效率。

 

下面就说说这个agent中的主要属性:

对node v0.4的版本

agent.maxSockets  默认值为5,指定代理能同时并发打开的套接字数量。

agent.sockets    当前正在被使用的套接字数组。使用数组的length属性可以查看值

agent.queue 待发送的套接字的个数。用length属性查看值,当并发发情的套接字超过

agent.maxSockets指定的值时就会把超过的部分放到quene中,呆有空闲链接的时候发送

node v0.6和v0.4在这个地方那个有了很大的区别,0.6不再提供http.getAgent方法,取而代之的是http.globalAgent

,这个方法获取的是一个全局的代理,对这个代理设置的允许并发打开的套接字数量agent.maxSockets对所有的ip+port有效。

0.6以后版本获取当前使用的套接字个数的方法:

agent.sockets['ip:port'].length

但是0.6版本的agent貌似不起作用,我查看tcp链接的时候每次访问都会重建链接,哪位大侠给说说是不是我用的不对啊。

分享到:
评论
2 楼 magele758 2013-07-09  
代码已经更改过了,看看nodejs的官方文档上面有说清楚:
http.globalAgent#
Global instance of Agent which is used as the default for all http client requests.
已经换名为globalAgent了。
1 楼 Mybeautiful 2012-03-09  
博主你好,
看到一段代码,
var httpAgent = require('http-agent'),
    util = require('util');

var agent = httpAgent.create('www.google.com', ['finance', 'news', 'images']);

agent.addListener('next', function (err, agent) {
  console.log('Body of the current page: ' + agent.body);
  console.log('Response we saw for this page: ' + util.inspect(agent.response));

  // Go to the next page in the sequence
  agent.next();
});

agent.addListener('stop', function (err, agent) {
  console.log('the agent has stopped');
});

agent.start();


可以遍历www.google.com的 finace,news,images,并打印出来,但是现在的问题是,如果 不是简单的打印,而是 分别从 finace,news,images,取点信息,然后一起返回到浏览器怎么做?

相关推荐

    Node.js(node-v16.15.1-win-x64.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js英文书籍2015出版共9本(一次下载)

    Full Stack Javascript - Learn Backbone.js, Node.js and MongoDB (APress 2015).epub Learning Node.js for Mobile Application Development (Packt 2015).pdf Microsoft Press Node.js for .NET Developers (2015...

    Node.js(node-v16.15.1-win-x86.zip)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    深浅node.js.rar

    学习node.js 前端 深入浅出 Node.js (一):什么是 Node.js 深入浅出 Node.js (二): Node.js&NPM; 的安装与配置 深入浅出 Node.js (三):深入 Node.js 的模块机制 深入浅出 Node.js (四): Node.js 的事件...

    Node.js(node-v16.15.1.pkg)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1.tar.gz 源码)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-linux-arm64.tar.xz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js.for.Embedded.Systems

    By bringing accessibility to embedded components such as sensors and microcontrollers, JavaScript and Node.js might shape the world of physical computing as they did for web browsers. This practical ...

    node.js14.18.3版本下载

    node.js14.18.3安装包下载

    Node.js-StuQ分享专题《深入浅出jsNode.js异步流程控制》完整版

    StuQ分享专题《深入浅出js(Node.js)异步流程控制》完整版

    Beginning Node.js

    Beginning Node.js is your step-by-step guide to learning all the aspects of creating maintainable Node.js applications. You will see how Node.js is focused on creating high-performing, highly-scalable...

    node.js(v16.16.0) 安装包

    node.js(v16.16.0) 安装包

    Node.js高级编程.pdf

    Node.js是一种主流框架,它允许你使用JavaScript快速构建具有高度可伸缩性的网络程序。可是,它有自己的学习曲线,这本较为深入的指南性图书首先介绍了Node.js平台的安装,然后重点关注:创建和加载模块;使用缓冲区...

    Node.js(node-v16.15.1-aix-ppc64.tar.gz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js开发实战详解源代码

    书由浅入深,全面、系统地介绍了Node.js开发技术。书中提供了大量有针对性的实例,供读者实践学习,同时提供了大量的实践练习题及详尽的解答,帮助读者进一步巩固和提高。本书重在代码实践,阅读时应多注重实践编程...

    Node.js 开发指南.pdf

    第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史 6 ...

    Node.js Javascript运行环境(runtime environment)

    Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好...

    Server Side development with Node.js and Koa.js

    Modern versions of JavaScript have made this possible in Node.js, and Koa is a Node.js framework that makes it easy. This book is the ideal introduction for JavaScript developers who want to create ...

    Node.js(node-v16.15.1-x64.msi)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

    Node.js(node-v16.15.1-darwin-arm64.tar.gz)

    Node.js 应用程序是用 JavaScript 编写的,可以在 Mac OS X、Windows 和 Linux 上的 Node.js 运行时中运行而无需更改。 Node.js 应用程序旨在最大限度地提高吞吐量和效率,使用非阻塞 I/O 和异步事件。Node.js 应用...

Global site tag (gtag.js) - Google Analytics