JQuery

1个成员

nodejs request EADDRINUSE解决方案

发表于 2017-01-02 3248 次查看
本文章来给各位同学详细介绍nodejs request EADDRINUSE解决方案,有碰到此类问题的同学可进入参考。

最近在使用nodejs发起大量request请求的时候,出现了以下错误信息:

 代码如下 复制代码

1.{ [Error: connect EADDRINUSE] code: 'EADDRINUSE', errno: 'EADDRINUSE', syscall: 'connect' } 3操作系统:Win Server 2003 x64

按照传统思维,EADDRINUSE错误应该是指地址被占用。但是发起request请求,何来地址占用一说?

刚开始一直以为是nodejs本身的BUG,后来找到nodejs官方github上的讨论,才知道这个是操作系统层面的问题。

网上搜了一下,找到几篇介绍TCP握手的文章,个人能力有限,并且也没时间深入进去。

直接把解决方案尝试了一下,方案如下:

Windows系统,添加以下两个注册表项:

 代码如下 复制代码

1.[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]2."TcpTimedWaitDelay"=dword:0000001e3."MaxUserPort"=dword:0000ffffLinux系统:

1.echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout经过测试,以上方案非常靠谱,操作后重启系统,问题完美解决!

如果你也碰到这个问题,可以尝试一下以上解决方案。

发表回复
你还没有登录,请先登录注册