有没有办法确定客户端是否在.NET中收到HTTP响应?

有没有办法确定客户端是否在.NET中收到HTTP响应?,.net,http,httpcontext,httplistener,.net,Http,Httpcontext,Httplistener,我使用的是HttpListener和HttpContexts,我知道在编写响应时,您可以确定它是否正确发送,但如何判断客户端是否收到了它 我想您可以在服务器和客户机之间设置某种消息确认系统,但我想知道是否有什么东西可以透明地为我做到这一点 使用WCF回答类似问题时提到了ReliableSessions,但我不确定将WCF应用到我的应用程序中是否值得。我对WCF不是很熟悉,但在我看来,它似乎不是为传统的web服务器请求/响应模型量身定制的,更适合于分布式系统类型的东西(这是我从查看可靠会话的文档中

我使用的是HttpListener和HttpContexts,我知道在编写响应时,您可以确定它是否正确发送,但如何判断客户端是否收到了它


我想您可以在服务器和客户机之间设置某种消息确认系统,但我想知道是否有什么东西可以透明地为我做到这一点

使用WCF回答类似问题时提到了ReliableSessions,但我不确定将WCF应用到我的应用程序中是否值得。我对WCF不是很熟悉,但在我看来,它似乎不是为传统的web服务器请求/响应模型量身定制的,更适合于分布式系统类型的东西(这是我从查看可靠会话的文档中得到的直觉,如果我错了,请纠正我)


谢谢

“我想您可以在服务器和客户端之间设置某种消息确认系统”。恐怕你不得不这么做。AFAIK HTTP中没有“本机”确认方法。

在服务器上,您可以调用Response.Flush,它将所有当前缓冲的数据(和头)同步发送到客户端。在调用完成后,您知道数据已被移交给TCP堆栈

ASP.NET不提供确保刷新TCP缓冲区的方法。即使是这样,也可能会出现一些模棱两可的情况,即客户端收到了响应,但网络接受了确认

这是将军们的问题,无法解决


此时,您需要提供详细的意图,因为正如我所说,没有完美的解决方案。

这是有道理的。我的目的是确保在传输过程中丢失的消息被注意到,为此,我的计划是让客户端发送消息(带有ID),并让服务器响应。如果客户端认为服务器没有收到消息,它会重新发送请求。如果服务器接收到重复的请求,它将发送响应的缓存副本。不过,我想知道HTTP上的WCF ReliableSession是如何实现的。