繁体   English   中英

Node.js,如何确保客户端从服务器获取数据而没有“确认”客户端的请求

[英]Node.js, how to make sure that client got a data from server without 'confirming' request from client

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

我觉得(并且我将实现它)最正确的方法是从客户端发送“我收到数据”请求。

但是我有一个学术问题:

服务器是否具有其他方法来检测是否已将响应传递给客户端(例如,由于客户端计算机被数据传输过程中的H炸弹直接击打蒸发了)?

根据node.js http文档

类:http.ServerResponse

...

事件:“完成”

发送响应后发出。 更具体地说,当响应头和主体的最后一段已移交给操作系统以通过网络传输时,将发出此事件。 这并不意味着客户还没有收到任何东西。

此事件之后,将不再在响应对象上发出任何事件。

另外,在“ net”模块文档中我没有找到更好的选择。

因此,看来我只能知道我的数据在内核缓冲区中,可以通过网络进行传输。

我可以通过Node.js的方式在传输时检测到一些错误吗?

我可以通过一些易于实现的非Node.js手段在传输时检测到一些错误吗?

也可以理解任何不是HTTP方式甚至不是TCP方式的链接和想法。

关于TCP的事情是,接收者必须确认它接收到每一位数据的事实。 如果不是这种情况,发送方将继续发送接收方尚未确认接收的数据。

我签出了Net模块,然后看到了这个有趣的片段:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM