【问题标题】:Is it possible to know when an HTTP response arrived to the client, in the server? (ASP.NET)是否可以在服务器中知道 HTTP 响应何时到达客户端? (ASP.NET)
【发布时间】:2014-07-25 21:30:55
【问题描述】:
快速问题(是的,我先用谷歌搜索过,没有成功):我有一个 ASP.NET 简单的 Web 处理程序(那些 .ashx 文件),虽然我可以使用 context.Response.Write() 等,但我没有似乎没有找到一种方法来检测响应何时实际到达客户端。
有可能吗?与 TCP 协议同质的东西,您可以在其中知道包已成功发送。
提前致谢!
【问题讨论】:
标签:
c#
asp.net
web-services
iis
networking
【解决方案1】:
这是不可能的,因为到达确认是
- 总是延迟
- 永远不可靠(见Generals Problem)
由于 (2),假设网络可能有损,不可能在所有情况下都可靠地确定数据已到达。
你或许可以设计出足够好的东西。让客户端发出第二个 HTTP 调用,让服务器知道第一个调用的结果到达。
【解决方案2】:
我认为 HTTP 不会处理请求/响应中公开的消息确认,并且我很确定在页面中的内置请求/响应对象中没有“开箱即用”的支持或控制器类。
您可能想看的是一个 Web 套接字库,例如 SignalR 或 SocketIO,它们都允许双向通信,听起来更像您正在寻找的东西。