- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在从我的 NodeJS 应用程序创建 http 请求,如下所示:
var start;
var req = http.request(options, function (res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
var elapsed = process.hrtime(start)[1] / 1000000; // in milliseconds
console.log(elapsed);
// whatever
});
});
req.on('socket', function (res) {
start = process.hrtime();
});
req.on('error', function (res) {
// whatever
});
if (props.data) req.write(props.data);
req.end();
我想知道我的请求需要多长时间——从请求通过网络的那一刻(或者我能到达的最接近的那一刻)开始(而不是创建 promise 的那一刻),直到“响应结束”事件开始的那一刻。
我在寻找最接近的时刻/事件时遇到了一些麻烦,我可以 Hook 以开始测量时间。 Http 客户端 socket event 是我迄今为止最好的选择,但它的描述:
Emitted after a socket is assigned to this request.
并不能真正说明那是否是我正在寻找的事件。所以,我的问题是 - 我这样做是否正确,或者是否有更好的事件我可以使用(或者甚至是更好的方法来完成整个事情)?谢谢。
最佳答案
是的,我的理解是 socket
事件是正确的选择。
一些证明:在 Node.js HTTP 代码中,this.emit('socket')
发生在 this.socket.write(data, encoding)
之前.
那里有一张我不确定的支票:
if (!this.socket.writable) return; // XXX Necessary?
因此,在您的 socket
事件处理程序中,您可能想要执行相同的检查,看看它是否会返回套接字不可写。
关于javascript - 如何测量 NodeJS 中的 http.ClientRequest 响应时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26977272/
我正在使用 ClientRequest 库执行“GET”请求,但我遇到了证书错误: javax.net.ssl.SSLPeerUnverifiedException: peer not authent
(我已经使用 Electron 一段时间了,但还没有做任何网络方面的事情——所以这是一个非常基本的问题) docs对于 ClientRequest,请在底部给出示例。我需要传入这样的查询字符串: ht
我想要TTFB与http模块。唯一的方法(IMO)是向套接字数据事件添加监听器。但这似乎不起作用。 这是一个代码示例。 var http = require('http'); var request
我想在 Electron 中使用 ClientRequest。我想在我的请求中添加正文,但我在文档中看不到有关 body 的信息。 我的请求对象: const requestApi = {
我正在使用 RESTEasy(JAX-RS 的实现)。我找不到为 ClientRequest 设置基本的抢占式身份验证的方法。 ClientRequest request = new ClientRe
考虑在 nodejs 中执行以下 javascript 代码: // create ClientRequest // port 55555 is not opened var req = requir
对于 REST 服务 (RESTeasy),我创建了如下 JUnit 测试用例: @Test public void a100_insertAddressTest() throws Exception
在测试方法中,接收 org.springframework.web.reactive.function.client.ClientRequest 的实例。 我想验证它的 HttpMethod、URI
根据http.js ClientRequest.write(chunk,encoding) Node 的方法http模块阻塞:控制流暂停,直到所有数据(当前数据和所有缓冲数据)发送完毕。 我想使用多个
我正在从我的 NodeJS 应用程序创建 http 请求,如下所示: var start; var req = http.request(options, function (res) { r
final ClientRequest request = new ClientRequest(); request.setMethod(new HttpString(requestMethod));
我刚刚发现 org.jboss.resteasy.client.ClientRequest 已被弃用,这使我在 Google 上找到的有关如何使用 RESTEasy 客户端的所有内容都无效。 Java
我需要维护旧版软件。我们如何使用org.jboss.resteasy.client.ClientRequest上传文件org.springframework.web.multipart.Multipa
我使用的是 Node.js 0.2.3,response.headers['set-cookie'] 似乎在第一个 cookie 之后被截断。有什么方法可以让我只读取原始标题吗? 顺便说一句,set-
我是一个nest.js 初学者,我正在尝试用我的代码实现Axios,并且发生了这个错误,我想修复它。 --> starting at object with constructor 'Clie
我有一个 Jersey 客户端配置并发出如下请求: private Response getResponse(Authorization authInstance, String filePath)
能否设置 node.js 以识别代理(例如 Fiddler)并通过代理路由所有 ClientRequest? 我在 Windows 上使用 Node ,并希望像在浏览器中使用 Fiddler for
我正在处理的 Node.js (v0.4.12) 模块出现了一个奇怪的问题。它是一个 CouchDB 模块,虽然我很确定 CouchDB 不是这里的问题,但我将把它包括在内,因为它可能是有用的信息。
当我尝试使用 axios 向我自己的 typeorm API 发出发布请求时出现以下错误: TypeError: Converting circular structure to JSON -
我是一名优秀的程序员,十分优秀!