3
我正在为节点中编写的应用程序构建一个小型开发人员工具(HUD)。在这个工具中,我想要显示为了提供该页面而做出的所有HTTP/HTTPS请求(将它们显示给开发者并记录它们的编号)。有没有一个干净的方式来做到这一点,这不涉及包装http.request()
?如果不是,那么为了记录HTTP & HTTPS,需要打包的最低级别的方法是什么?对于TCP连接怎么样?如何在Node.js中监视传出的HTTP请求?
我正在为节点中编写的应用程序构建一个小型开发人员工具(HUD)。在这个工具中,我想要显示为了提供该页面而做出的所有HTTP/HTTPS请求(将它们显示给开发者并记录它们的编号)。有没有一个干净的方式来做到这一点,这不涉及包装http.request()
?如果不是,那么为了记录HTTP & HTTPS,需要打包的最低级别的方法是什么?对于TCP连接怎么样?如何在Node.js中监视传出的HTTP请求?
答案取决于代码的复杂程度。如果您对每个请求提出3或4次外部资源请求,只需手动插入分析代码即可,这可能是最简单最简单的解决方案。
如果你发出很多很多请求,猴子补丁(包装)http.request
和https.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
函数用于分析代码中更深层次特定函数/模块的任何用法。去看看这个源代码! :)