【问题标题】:Howto download speed nodejs request如何下载速度nodejs请求
【发布时间】:2014-12-27 11:41:09
【问题描述】:

我正在编写一个类似蜘蛛的脚本来备份和旧论坛网站, 只是对侵入 nodejs 网络组件以查看和记录下载速度感兴趣。

我正在使用请求请求({url:href, jar: j}),我认为它使用了 http 代码模块。 我没有成功找到类似的东西: process.memoryUsage().heapUsed 仅供网络使用。

【问题讨论】:

    标签: node.js networking request monitoring


    【解决方案1】:

    如果您想测量脚本的带宽使用情况,您可以通过 request itsefl 使用的 socket/s 对象访问此信息。

    通过“数据”事件处理接收到的可用数据时,请求对象存储有关正在进行的连接的信息。

    agent.sockets 对象下,您可以找到正在使用的网络套接字。 bytesRead 和 bytesDispatched 属性可能正是您要寻找的。​​p>

    request( { method: 'GET', uri: 'http://www.google.com')
    .on('data', function(data) {
      //this.agent.sockets
      //this.agent.sockets["www.google.com:80"]["0"].bytesRead
      //this.agent.sockets["www.google.com:80"]["0"]._bytesDispatched
    })
    

    【讨论】:

    • 是否与 response.body.toString().length 紧密匹配?
    • 不,因为body只保存了HTTP请求的payload信息。附加数据(HTTP 标头、TCP 标头、控制字段等)不会在此处反映,但它们也会被发送。如果您想准确测量传输的数据量,则必须参考套接字信息。另一方面,如果您只想知道从您的站点传输了多少数据,那么正文的大小可能就足够了。
    • 我不需要精确的测量,但无论如何它看起来很有用。
    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 2013-08-20
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多