2012-01-17 97 views
0

我有wcf服务连接几个客户端。如果其中一个人想要断开连接,那么结束代理会话,通知其他用户等等等。检查所有客户端连接到wcf服务

但是有时客户端与wcf服务断开连接(例如用户结束了他的进程)。 如何检测,该客户端已断开并通知其他客户端?

+1

请在此处放置更多的上下文。你使用什么绑定?什么是合同?你如何检测到“正确”的断开?这会帮助人们理解你的问题。 – oleksii 2012-01-17 12:00:03

+0

你是否在不同的客户端中维护会话对象? – 2012-01-17 12:00:57

+0

@oleksii当断开连接的用户发送广播简单消息列表枚举“ActionType.Disconnect”时,正确断开连接。问题是当进程刚刚关闭并且没有时间调用此广播() – Saint 2012-01-17 12:11:51

回答

4

当客户端突然中断时,如果客户端断开连接,您不会在服务端知道,因此您必须手动断开用户连接。

为此,您需要在会话对象中添加LastAccessTime属性。一旦完成这一步,您将不得不编写一个后勤人员角色,以LastAccessTime为基础断开会话。在每次请求中,您将使用当前时间更新这个时间。

希望这会有所帮助。