用nodejs搭建了一个http服务器,前端是手机(2G,3G网络),由于网络不稳定,手机经常会出现断网的情况。 当手机网络关闭时(模拟断网情况),server端并有没有触发requset.on(‘close’),而且response.write和response.end也有发生什么异常,当前手机是没有收到任何response的,请问这种是什么情况?? 有什么办法可以判断response.write和response.end成功与否吗?
4 回复
这只是两边socket端口交流,一端关闭端口,另一端继续发送而已。 底层会有ACK返回信号确认,在路上的包是没法停止的,这是由物理路由线路决定的,中间的路由器网关并不知道目的地已经关闭了。 手机断网就断网了,跟服务器有什么关系。
@qianqing 这就跟断点续传一个意思了。用node http太高层,做不了的。用node tcp可以模拟,不过也是比较高层。断点续传一般都是c c++来做了。 用node tcp,可以通过socket的data事件,来侦听,每发送一块data,对方必须返回一个确认值,然后发下一个data。