2012-01-17 69 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爲基礎斷開會話。在每次請求中,您將使用當前時間更新這個時間。

希望這會有所幫助。