[英]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.