nodejs - http.request是否有超时
默认没有。
那么,req.setTimeout(msec, callback)是干什么用的。
它的意思是 socket msec 没有活动后执行callback,不帮你关闭连接。
就像一个秒表,每收到数据就从头开始计时,打比方:“好久没有收到你的信了”
提示:客户端是没有自带的超时的(需要自己实现),服务端有,下面总结一下node中http模块的超时。
http的四种超时(它们都是服务端的)
1. 默认2分钟
2. server.timeout = 120000;
3. res.on('timeout', callback)
4. req.setTimeout(msecs, callback)
它们的区别如下
在采用http默认的timeout(2分钟)的情况下,如果这次请求hang
up,也就是没有res.end(),那么服务器会触发req.aborted req.close
res.close事件,关闭连接。
但是,如果注册了res.on('timeout', callback) 的时候,2分钟后,http执行timeout的回调函数,其它什么都不做。
如果注册了req.setTimeout(msecs,
callback),则msecs超时后http执行回调函数,其它的什么都不做。
如果同时注册了res.on('timeout', callback)和req.setTimeout(msecs, callback),则分别执行这两个回调函数,其他什么都不做。
如果只是设定了较小的server.timeout变量,则超时行为和默认一样,还是会触发res.aborted
req.close res.close,关闭连接 -- 只是超时的时间缩短了。
注:node版本v0.12.0
nodejs - http.request是否有超时的更多相关文章
- Nodejs中request出现ESOCKETTIMEDOUT解决方案
做需求的时候,使用Nodejs的request批量请求某一个接口,由于接口超时,出现 ESOCKETTIMEDOUT,程序中断 为了让程序遇到 ESOCKETTIMEDOUT 之后能够继续执行下去,需 ...
- 利用Nodejs & Cheerio & Request抓取Lofter美女图片
还是参考了这篇文章: http://cnodejs.org/topic/54bdaac4514ea9146862abee 另外有上面文章 nodejs抓取网易公开课的一些经验. 代码如下,注意其中用到 ...
- nodejs的request创建的get和post请求,带参数
1.导入request : var request = require('request'); 2.get请求 request({ timeout:5000, // 设置超时 method:'GET' ...
- [转]nodejs使用request发送http请求
本文转自:https://blog.csdn.net/dreamer2020/article/details/52074516/ 在nodejs的开发中,有时需要后台去调用其他服务器的接口,这个时候, ...
- nodejs使用request和bluebird编写的http请求模块
var request = require("request"); var promise = require("bluebird"); //使用bluebir ...
- 记一次 XxlRpcException:xxl-rpc request timeout at 超时问题
事件起因 昨天有同事找我到,说他搭建的 XXL-JOB 任务调度系统不能工作了,调用总是出错(服务端返回 500)希望我能帮忙处理一下,不过说实话我也没有搭建过 XXL-JOB 的经验,但是既然同事请 ...
- NodeJS POST Request Over JSON-RPC
1.npm install art-template2.npm install request3.在app.js中加入以下代码转html: var template = require('art-t ...
- nodejs get/request
灌水评论示例: var http = require('http'); var querystring = require('querystring'); var postData = queryst ...
- NodeJS: 处理request网页乱码问题
对于gb2312编码的网页,直接用request去获取会得到乱码的结果,解决方法很简单: 1. npm install iconv-lite 2. var iconv = require('iconv ...
随机推荐
- LintCode-165 · 合并两个排序链表-题解
描述:将两个排序(升序)链表合并为一个新的升序排序链表样例 1:输入: list1 = null, list2 = 0->3->3->null输出: 0->3->3-&g ...
- JDBC往数据库传值中文乱码以及时区不一致解决
设置一下时区和编码就可以了 "jdbc:mysql://localhost:3306/jdbcprac?characterEncoding=UTF-8&&useSSL=fal ...
- 【openstack】cloudkitty组件,入门级安装(快速)
@ 目录 前言 架构 安装 配置 启动 检索并安装 CloudKitty 的仪表板 前言 什么是CloudKitty? CloudKitty是OpenStack等的评级即服务项目.该项目旨在成为云的退 ...
- Linux主流发行版本配置IP总结(Ubuntu、CentOS、Redhat、Suse)
我们先了解下IP的概念 IP地址简介 电脑连接互联网的必要条件:IP地址+子网掩码+网关+DNS IP地址是上网的唯一标识 - IPv4地址分类: IPv4地址分为A-E共计5类地址,其中A.B.C是 ...
- VUE3 之 Teleport - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:宰相肚里能撑船,但凡成功的人,都有一种博大的胸怀. 言归正传,今天我们来聊聊 VUE 中 Teleport 的使用. 2. Teleport 2.1 遮罩效果的实现 < ...
- IDEA通用配置
文件的自动author注释
- npm 是什么?
npm 是什么? 本文写于 2020 年 6 月 16 日 最近帮几个同学装开发环境,发现他们会各种"卡死"在 npm 安装一些包的过程中. 他们会非常纠结这个命令我明明敲的和网上 ...
- 637. Average of Levels in Binary Tree - LeetCode
Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这 ...
- Android.mk编译App源码
在Andriod源码环境编译APP主要考虑如何引入第三方jar包和arr包的问题,初次尝试,步步是坑,这里给出一个模板: LOCAL_PATH := $(call my-dir) include $( ...
- Android——RelativeLayout
代码:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android= ...