尽管 HTTP 是无状态协议,但有一个 PushStreamContent 类可以促进服务器发送事件,您可以在此处阅读。Web API 实现可以存储客户端流并定期发送推送更新。但是,检测客户端何时断开连接有点问题。
在本次讨论中,Henrik Nielsen 指出:
检测到 TCP 连接已被重置是主机(ASP、WCF 等)监控的事情,但在 .NET 4 中,ASP 和 WCF 都没有告诉我们(Web API 层)这件事。这意味着检测断开连接的唯一可靠方法是实际向其写入数据。这就是为什么我们在示例中的写操作周围有 try/catch。也就是说,响应将在失败时而不是之前被清理。
在 .NET 4.5 中有一种检测客户端断开连接的机制,但我还没有尝试过。
快进两年半到今天。有谁知道这种机制是什么,以及它是否有效?