如何知道客户端断开连接并仅使用ASP.Net,WCF服务&客户会话?

时间:2016-02-17 09:35:32

标签: javascript jquery asp.net wcf session

我的Web应用程序在ASP.NET 4.0 C#中,我也使用WCF服务并使用create random userID维护会话。应用程序是关于视频管理系统。当我请求开始流式传输到VSS(视频流服务器)时,那时我将所请求的摄像头和用户的所有流式细节插入到SQL服务器表中。并且在断开该特定相机的视频流时,我将仅从该用户的表中删除该条目。如果其他用户看到直播,则其他用户条目将保持不变。

虽然有些网络断开连接或浏览器崩溃,但这一条目并不清楚。所以我想知道我怎么知道一个客户端断开连接,我需要使用该用户ID清除其数据映射,只检查该用户的会话是否存活,如果不需要清除Sql表中的数据。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

通过网络进行通信的本质决定了您无法将缺少传入的IP数据包解释为客户已经崩溃,移动到其他地方,去喝茶或突然死亡的确凿证据。

要部分解决此问题,您可以:

  1. 提供Disconnect()操作,可以调用该操作以显式终止会话when the browser is closedotherwise navigates away。请注意,这是inherently unreliable
  2. 实现客户端崩溃时的合理会话超时
  3. 假设您正在从浏览器进行WCF调用。