node的超时timeout

如果在指定的时间内服务器没有做出响应(可能是网络间连接出现问题,也可能是因为服务器故障或网络防火墙阻止了客户端与服务器的连接),则响应超时,同时触发http.ServerResponse对象的timeout事件.

response.setTimeout(time,[callback]);

也可以不在setTimeout中指定回调函数,可以使用时间的监听的方式来指定回调函数.

如果没有指定超时的回调函数,那么出现超时了,将会自动关闭与http客户端连接的socket端口.如果指定了超时的回调函数,那么超时了,将会出现调用回调函数,而不会自动关闭与http客户端连接的socket端口.

 1 var http=require("http");
 2 var server=http.createServer(function(req,res){
 3     if(req.url!=="/favicon.ico"){
 4         //超时监听
 5         /*res.setTimeout(1000);
 6         res.on("timeout",function(){
 7             console.log("响应超时.");
 8         });*/
 9         //超时直接回调
10         res.setTimeout(1000,function(){
11            console.log("响应超时.");
12         });
13         setTimeout(function(){
14             res.setHeader("Content-Type","text/html");
15             res.write("<html><head><meta charset=‘utf-8‘ /></head>");
16             res.write("你好");
17             res.end();
18         },2000);
19     }
20 });
21
22 server.listen(1337,"localhost",function(){
23     console.log("开始监听"+server.address().port+"......");
24 });

运行代码结果:

删除超时的回调函数后:

时间: 2024-08-10 19:08:55

node的超时timeout的相关文章

ASP 服务器超时 Timeout 处理

ASP 服务器超时 Timeout 处理 影响服务器产生超时的设定大致有: 1. Server.ScriptTimeout 2. Connection对象的CommandTimeOut属性 3. Command对象的CommandTimeOut属性 4. IE浏览器的设定 Server.ScriptTimeout 默认值是90秒 要增大它,在你的asp文件中加一句,如下: Server.ScriptTimeout=999 '单位(秒) Connection和Command CommandTime

[Swift 工作tips] 之 使用Alamofire做网络请求时设置请求超时(timeout)时间

在应用开发过程中,经常需要网络请求,在网络请求的过程中,一般的第三方网络框架的超时时间比较长为15秒: 那么,我们如何来指定请求的超时时间呢? 在Swift的世界里,比较有名的网络是Alamofire   GitHut地址:https://github.com/Alamofire/Alamofire 那么,在使用Alamofire 的时候,设置Alamofire的请求时间如下: 本例代码如下: 1 var alamofireManager : Manager? 2 // 设置请求的超时时间 3

Puppet使用ENC报&#39;Could not load external node results for&#39;

这个问题出现有一段时间了,最开始的时候从一天3-5次左右到最近的一天出现10多次的告警邮件... 因为Puppet同步采取了主动触发和定时同步两种策略,几乎每次的报错都是在定时同步时出现... Puppet Server采用双主结构,Web ui使用Foreman,为了确定这个报错是出现在那台服务器上, 通过对源代码的log增加主机标记最终定位到了这个错误只是出现在一台服务器上...,出现的很偶然,但所有的错误标记中,都是它.... Level Resource message err Pupp

libcurl多线程超时设置不安全(转)

from http://www.cnblogs.com/kex1n/p/4135263.html (1), 超时(timeout) libcurl 是 一个很不错的库,支持http,ftp等很多的协议.使用库最大的心得就是,不仔细看文档,仅仅看着例子就写程序,是一件危险的事情.我的程序崩溃了,我 怀疑是自己代码写的问题,后来发现是库没用对.不仔细看文档(有时候文档本身也比较差劲,这时除了看仔细外,还要多动脑子,考虑它是怎么实现的),后果很 严重.不加思索的使用别人的库或者代码,有时候很惬意,但是

Node.js 事件循环

原文:https://github.com/nodejs/node/blob/master/doc/topics/event-loop-timers-and-nexttick.md 什么是事件循环(Event Loop) 事件循环能让 Node.js 执行非阻塞 I/O 操作 -- 尽管JavaScript事实上是单线程的 -- 通过在可能的情况下把操作交给操作系统内核来实现. 由于大多数现代系统内核是多线程的,内核可以处理后台执行的多个操作.当其中一个操作完成的时候,内核告诉 Node.js,

Java网络编程从入门到精通(16):客户端套接字(Socket)的超时

客户端套接字的超时(timeout)就是指在客户端通过Socket和服务器进行通讯的过程中,由于网络延迟,网络阻塞等原因,造成服务器并未及时响应客户端的一种现象.在一段时间后,客户端由于未收到服务端的响应而抛出一个超时错误; 其中客户端所等待的时间就是超时时间. 由于生产超时错误的一端都是被动端:也就是说,这一端是在接收数据,而不是发送数据.对于客户端Socket来说,只有两个地方是在接收数据:一个是在连接服务器时;另一个是在连接服务器成功后,接收服务器发过来的数据时.因此,客户端超时也分为两种

解析Linux内核的基本的模块管理与时间管理操作---超时处理【转】

转自:http://www.jb51.net/article/79960.htm 这篇文章主要介绍了Linux内核的基本的模块管理与时间管理操作,包括模块加载卸载函数的使用和定时器的用法等知识,需要的朋友可以参考下 内核模块管理Linux设备驱动会以内核模块的形式出现,因此学会编写Linux内核模块编程是学习linux设备驱动的先决条件. Linux内核的整体结构非常庞大,其包含的组件非常多.我们把需要的功能都编译到linux内核,以模块方式扩展内核功能. 先来看下最简单的内核模块 ? 1 2

[RN] React Native Fetch请求设置超时

一.实现思路 根据Promise.race的特性,我们在Promise.race里面添加两个任务,一个是正常的网络请求任务A,另外一个便是网络延时任务B,网络延时可以利用setTimeout方法实现. 这个时候会有三种情况出现: 1.A任务在8秒内完成(假定8秒超时),Promise.race任务正常结束. 2.超过8秒A任务仍然未完成,由B任务计时结束自动中断Promise.race. 3.发生异常,Promise.race自动结束. 针对以上三种情况来设计网络超时方案. 二.代码 HttpU

haproxy+keepalived实现高可用负载均衡web集群

haproxy+keepalived实现高可用负载均衡web集群 负载均衡集群的概念 负载均衡是设计分布式系统架构必须要考虑的因素之一,它指的是通过调度分发的方式尽可能将"请求"."访问"的压力负载平均分摊到集群中的各个节点,避免有些节点负载太高导致访问延迟,而有些节点负载很小导致资源浪费.这样,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间的动态分配,以实现负载均衡,从而为企业提供更高性能,更加稳定的系统架构解决方案. 高可用集群的概念