我們擁有(多個)客戶端 - (一個)用於撲克桌面遊戲的服務器體系結構。我們使用回調通道使用回調通知。在拋出CommunicationObjectAbortedException後恢復回撥通道
但是有時候因爲網絡連接丟失,這個特殊客戶端會從服務器退出,特定客戶端的WCF通道也會進入虛假狀態,而他在服務器上的回調通道也會失效。
場景:
客戶端是玩遊戲,而網絡連接斷開,那場比賽被停止,仍然是他的遊戲窗口保持打開狀態,當他/她的互聯網連接回來客戶端從服務器斷開了,但該玩家的遊戲窗口仍然打開,該玩家無法做任何事情,因爲他/她的WCF頻道被剔除。
我們希望關閉特定客戶端的窗口,同時將其從服務器中剔除,並拋出'CommunicationObjectAbortedException'異常。
我們不能使用之前的WCF通道的回調通道,因爲它處於失效狀態。 所以我們試圖在服務器中創建新的callbackChannel,同時使用下面的代碼:
OperationContext。 當前 .GetCallbackChannel();
但這裏當前顯示爲「NULL」,因爲該玩家的WCF頻道被中止,所以它拋出了「對象引用未設置爲對象實例」的錯誤。
那麼是否有任何解決方案使用中止的WCF通道的回調通道或恢復該WCF通道,而不重新初始化它們或使用新通道調用該客戶端?