Node.js客户端请求挂起

m杰克

我有一个node.js流程,该流程使用大量客户端请求从网站提取信息。我正在使用请求包(https://www.npmjs.com/package/request),因为它说:“它支持HTTPS,并且默认情况下遵循重定向。”

我的问题是经过一段时间后,请求开始挂起。我无法确定这是否是因为服务器返回了无限数据流,或者是否正在发生其他情况。我已经设置了超时时间,但是在成功请求一些之后,其中一些最终会陷入困境,而且永远无法完成。

var options = { url: 'some url', timeout: 60000 };
request(options, function (err, response, body) {
    // process
});

我的问题是,使用此库接收到一定数量的数据后,我可以关闭连接吗?可以停止挂起请求吗?我是否需要使用http / https库并自己处理重定向和协议切换,以便获得所需的控制权?如果可以,是否有标准化的做法?

编辑:另外,如果我停止该进程并重新启动它,他们会立即备份并开始工作,因此我认为它与运行代码的服务器或机器无关。

湿帽

请注意,在中request(options, callback),当请求完成且无法中断请求时,将触发回调。

您应该监听data事件:

var request = require('request')

var stream = request(options);

var len = 0
stream.on('data', function(data) {
   // TODO process your data here

   // break stream if len > 1000
   len += Buffer.byteLength(data)
   if (len > 1000) {
      stream.abort()
   }
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js WebRTC客户端

来自分类Dev

node.js请求和重新验证客户端有什么区别?

来自分类Dev

Node.js http GET请求比浏览器,REST客户端等花费的时间更长

来自分类Dev

Node.js-在新客户端请求后会发生什么

来自分类Dev

Node.js - 获取请求访问的客户端的域/url

来自分类Dev

在Node / Express中同时处理客户端请求

来自分类Dev

使用Node.js进行客户端与客户端的通信

来自分类Dev

从node.js客户端到浏览器客户端的socket.emit

来自分类Dev

Node.js / Express:立即响应客户端请求并在nextTick中继续执行任务

来自分类Dev

我们可以通过 node.js 检测请求类型(来自 html 或用户客户端)吗

来自分类Dev

Node.js:获取客户端的IP

来自分类Dev

在客户端Node.js中包含JQuery

来自分类Dev

使用Node.js验证DDP客户端

来自分类Dev

在node.js上获取客户端的MAC地址

来自分类Dev

Node.js服务器(移动客户端)

来自分类Dev

将数据从Node.js发送回客户端?

来自分类Dev

node.js / socket.io-跟踪客户端

来自分类Dev

AMQP-Node.js的Apache Qpid客户端

来自分类Dev

Node.js SOAP客户端参数格式

来自分类Dev

用于node.js的hazelcast客户端模块

来自分类Dev

Node.js:访问客户端证书

来自分类Dev

从Aerospike node.js客户端检索主键

来自分类Dev

在Ubuntu上安装Node JS Pulsear客户端

来自分类Dev

在Node.JS中向客户端发送通知

来自分类Dev

Elastic Search Node.js客户端-路由错误

来自分类Dev

AMQP-Node.js的Apache Qpid客户端

来自分类Dev

Node.js服务器(移动客户端)

来自分类Dev

Node.js:在客户端处理JSON对象

来自分类Dev

用于node.js的hazelcast客户端模块