Node.js,如何确保客户端从服务器获取数据而不确认'来自客户

时间:2016-10-17 09:33:14

标签: node.js http

我的HTTP服务器需要确保将HTTP响应传递给客户端。

我觉得(我会这样实现),最正确的方法是发送"我收到数据"来自客户的请求。

但我有一点学术问题:

服务器是否有一些其他意味着检测是否传递给客户端(例如由于客户端的计算机是由于直接命中H-bomb而被蒸发掉)数据传输)?

根据node.js http documentation

  

类:http.ServerResponse

     

...

     

活动:'完成'

     

发送回复后发出。更具体地说,这个事件   在响应头和主体的最后一段时发出   被移交给操作系统进行传输   网络。这并不意味着客户已收到任何信息。

     

此事件发生后,响应不会再发出任何事件   对象

此外,我并没有在“网络”中找到更好的结果。模块文档。

所以我似乎只能知道我的数据是在内核缓冲区中通过网络进行传输。

我可以通过Node.js检测此传输中的一些错误吗?

我可以通过一些易于实现的非Node.js来检测此传输中的一些错误吗?

任何链接和想法,这不是HTTP方式,甚至不是TCP方式,也赞赏。

1 个答案:

答案 0 :(得分:1)

关于TCP的事情是接收器必须承认它接收每一位数据的事实。如果情况并非如此,发件人会不断发送接收方尚未确认接收的数据。

我检查了网络模块,我看到了这个有趣的部分:

Event: 'end'
#
Added in: v0.1.90

Emitted when the other end of the socket sends a FIN packet.

我没有这方面的实现想法,但是,这可能对你的情况有用。