CNode

有个关于nodejs http的,比较奇怪的问题,望大家帮忙分析分析

Qqianqing发布于12 年前最后回复12 年前6 回复5837 浏览0 收藏

场景:android + nodejs http通讯模拟测试 具体描述:最近帮测试人员做了测试模拟程序,主要用于测试在android手机网络情况极端不稳定情况下,和后端nodejs 服务器之间http通讯的稳定性。android手机每秒发送一次http request,nodejs收到req后直接将req中的data返回。

问题:在网络不稳定情况,偶尔有几次request会出现这种情况:nodejs正常收到request,并且成功response,整个过程没有error(已经监听clientError,以及在response.end的时候检查是否有error)。但是android端缺没有收到response,最后变成请求超时。

我不明白,如果是链接端了,发nodejs做response的时候不是应该有异常吗?如果没有发生异常,是否意味着nodejs已经将数据应答成功了?

查看回复

回复 (6)

C
chemdemo#1·12 年前

监听下请求和响应的error事件看看

Q
qianqing#2·12 年前
引用 chemdemo监听下请求和响应的error事件看看

@chemdemo 都已经监听了,没有反应。

R
ravenwang#3·12 年前

android是用什么发送请求的?超时判定可能是由上层应用做出的

G
gothame#4·12 年前

最好搞定了吗,我也遇到了这个问题

A
alsotang#5·12 年前

调试这种问题感觉好麻烦,不如两边都加入超时和重试机制吧。

T
tulayang#6·12 年前

收到包,然后返回ACK,只要程序没有bug,一般不会出问题,所以nodejs不会出问题。 发出包,等待目标确认,这个由网路决定,nodejs服务器发的是200 end,直接关闭本端了。 android则是在等待ACK。

你发个100响应码, 侦听"checkContinue"。

参与回复
登录后即可参与回复。登录