Kom*_*ala 5 wcf nettcpbinding wcf-callbacks
我们有用于扑克桌面游戏的(多个)客户端-(一个)服务器架构。我们正在使用回调通道使用回调通知。
但有时由于互联网连接中断,该特定客户端与服务器断开连接,该特定客户端的 WCF 通道也进入故障状态,位于服务器的回调通道也发生故障。
设想 :
该客户端正在玩游戏,而互联网连接断开,该游戏已停止,但他的游戏窗口仍然保持打开状态,当他/她的互联网连接恢复时,该客户端从服务器中退出,但该玩家的游戏窗口仍然打开,该玩家可以当他/她的 WCF 频道退出时,不要做任何事情。
我们希望在他/她从服务器退出并抛出“ CommunicationObjectAbortedException ”异常时关闭该特定客户端的窗口。
我们不能使用以前的 WCF 通道的回调通道,因为它处于故障状态。因此,我们尝试在使用以下代码删除的同时在服务器中创建新的 callbackChannel:
操作上下文。当前.GetCallbackChannel();
但是这里 Current 显示“ NULL ”,因为该播放器的 WCF 通道被中止,因此它抛出“对象引用未设置为对象实例”的错误。
那么是否有任何解决方案可以使用中止的 WCF 通道的回调通道或恢复该 WCF 通道而不重新初始化它们或使用新通道调用该客户端?
我会尝试以下操作:
在服务器端,当尝试使用故障/中止的通道进行通信时 - 你会失败。捕获此故障,并从列表中删除其回调(我想您管理一些回调列表)。
在客户端 - 当chanel发生故障/...处理时 - 尝试向服务器重新打开新的chanel。当这个新的 chenel 打开时,在服务器端将此新的回调放回到“有效回调”列表中。
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |