【问题标题】:How to monitor outgoing HTTP requests in Node.js?如何在 Node.js 中监控传出的 HTTP 请求?
【发布时间】:2012-07-28 18:50:25
【问题描述】:

我正在为一个用 node.js 编写的应用程序构建一个小型开发人员工具 (HUD)。在该工具中,我想显示为服务该页面而发出的所有 HTTP/HTTPS 请求(将它们显示给开发人员并记录它们的编号)。有没有一种干净的方法可以做到这一点,不涉及包装http.request()之类的东西?如果不是,为了记录 HTTP 和 HTTPS,需要包装的最低级别的方法是什么? TCP 连接怎么样?

【问题讨论】:

    标签: node.js tcp


    【解决方案1】:

    这个问题的答案取决于您的代码有多复杂。如果您对每个请求发出 3 或 4 次外部资源请求,则只需手动插入分析代码,这可能是最干净、最简单的解决方案。

    如果您发出许多请求,猴子修补(包装)http.requesthttps.request 可以很容易地完成。

    patcher = (patchMe) ->
      original = patchMe.request
      patchMe.request = (options, callback) ->
        console.log options.host, options.method # or any other counting, profiling
        original(options, callback)
    
    http = require 'http'
    https = require 'https'
    
    patcher(http)
    patcher(https)
    

    如果您想要修补的不仅仅是这些请求,那么在 tcp/udp 级别,很遗憾,您必须阅读源代码才能确定可以修补的底层方法,我没有去过那里。

    我喜欢阅读nodetime 的源代码,它对require 函数进行了猴子补丁,以分析代码中更深层次的特定函数/模块的任何使用。去阅读那个来源! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      相关资源
      最近更新 更多