ECONNRESET分析与解决

给项目升级jetty插件,对应的NodeJS的集成测试脚本出现了问题,集体出现了ECONNRESET。
作为一只单纯的Java犬,对此表示束手无策,于是开始走上了漫漫尝试之路。

Node部分通信是用的co-request模块?
换成request模块总成了吧,嗯,一定是酱紫,我简直太聪明了。
然而换成了request模块,并没有什么卵用…

请教Node的全栈童鞋,被告知,只有API的后缀为.json的时候才会出现这个问题。突然豁然开朗,我可以把所有接口都改后缀啊!
嗯… 相信我,如果我真那么做了,估计也活不到写这篇分析的时候了。

嗯,那就接着换吧,换成http模块总成了吧。绝对是这样的,擦亮我的双眼!
然而换成了http模块,还是没有什么卵用…

一系列试错之后,开始用科学的方法解救自己!抓个包看看吧~
升级之后的HTTP报文
哇塞,http模块想不到你那么牛,结束协议该发[FIN,ACK]的地方你还发ACK,你咋不上天呢…

那原来这货是怎么蒙混过关的?再抓个包看看吧~
升级之前的HTTP报文
原来是对的?http模块,想不到你那么牛,依赖对方的输入决定自己怎么实现TCP协议,你咋不上天呢…
对比了半天返回内容,明白了,你原来就因为返回值多了一个Date,你就决定更改TCP实现,你咋不上天呢…

附内容对比:
-----------------------------------
POST /4/recyclebin/person/54195/empty.json HTTP/1.1
Content-Type: application/json
Token: b98fc1a1ceed8caf6def4fd4e01e15ec700e648c
Date: Fri, 18 Mar 2016 08:33:24 GMT
Key: adesedfd
Authorization: a0662d12dbb8f97895aa76fb47fc922b349c1806
Host: 127.0.0.1:8080
Connection: close
Content-Length: 0
HTTP/1.1 200 OK
Date: Fri, 18 Mar 2016 08:33:24 GMT
Connection: close
Server: Jetty(9.3.0.M2)
-----------------------------------
POST /4/recyclebin/person/54195/empty.json HTTP/1.1
Content-Type: application/json
Token: b98fc1a1ceed8caf6def4fd4e01e15ec700e648c
Date: Fri, 18 Mar 2016 08:43:57 GMT
Key: adesedfd
Authorization: f22cc35473362c6a6934ed355aebcca42c696fcf
Host: 127.0.0.1:8080
Connection: close
Content-Length: 0
HTTP/1.1 200 OK
Connection: close
Server: Jetty(8.1.16.v20140903)
-----------------------------------
最后确定了错误是由于http模块激动的不会关TCP导致的,内容并不会有误差,所以安心的监听error事件,然后先忽略就好了,坐等HTTP模块的升级~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值