我正在使用 WCF 双工回调创建客户端服务应用程序。该服务向所有连接的客户端发送消息。我将所有连接的客户端存储在字典中。在向客户端发送消息之前,我想检查是否有任何客户端异常关闭(网络断开,断电)。
@marc_s:我创建了一个 CheckCallbackChannels 方法,它将检查字典中连接客户端的通信状态。
Sub CheckCallbackChannel()
For Each objClient As KeyValuePair(Of Guid, IClientCallBack) In MainService.objClients
Dim objClientCallBack As IClientCallBack = MainService.objClients.Item(objClient.Key)
Dim callbackChannel As ICommunicationObject = TryCast(mobjClientCallBack,ICommunicationObject)
'Dim state As CommunicationState = callbackChannel.State
If callbackChannel.State = CommunicationState.Opened OrElse callbackChannel.State = CommunicationState.Faulted Then
MainService.objClients.Remove(objClient.Key)
End If
Next
End Sub
但在这里我也得到了错误客户端的连接状态。