我们为扑克桌面游戏提供(多个)客户端-(一个)服务器架构。我们正在使用回调通道使用回调通知。
但有时由于互联网连接断开,该特定客户端与服务器断开连接,该特定客户端的 WCF 通道也进入故障状态,其位于服务器中的回调通道也故障。
设想 :
该客户端正在玩游戏,而互联网连接断开,该游戏停止,他的游戏窗口仍然打开,当他/她的互联网连接恢复时,该客户端从服务器中退出,但该玩家的游戏窗口仍然打开并且该玩家可以当他/她的 WCF 频道退出时,不要做任何事情。
我们希望在他/她从服务器中退出并抛出“ CommunicationObjectAbortedException ”异常时关闭该特定客户端的窗口。
我们不能使用以前的 WCF 通道的回调通道,因为它处于错误状态。所以我们尝试在服务器中创建新的回调通道,同时使用下面的代码:
操作上下文。当前.GetCallbackChannel();
但是这里 Current 显示“ NULL ”,因为该播放器的 WCF 通道已中止,因此它会引发“对象引用未设置为对象实例”的错误。
那么是否有任何解决方案可以使用已中止的 WCF 通道的回调通道或恢复该 WCF 通道而不重新初始化它们或使用新通道调用该客户端?