在利用WCF服务的时候,通常只是在服务器监听客户端调用服务。但是WCF服务本就是对TCP, HTTP等各种通信方式的封装了所有SOCKET能够实现的东西,WCF服务应该也能实现。
前面写过一次博客,利用WCF服务的会话模式实时检测客户端异常掉线。但是对于拔出网线的异常并没有反应。在这里我们利用WCF服务的双工通信来在服务器进行心跳检测,以识别客户端的掉线.。同时利用双工通信向多个已经连接客户端播送消息。
所有的操作正如前面一篇博客一样都是建立在WCF服务会话模式的基础上。
1。心跳
前篇已经解释过为何要用会话模式了,不再多说。直接看步骤
1>. 先在WCF服务 IService 里面定义回调接口。回调函数在客户端实现 这里不再列出 如下
[ServiceContract(CallbackContract =(typeof(IDataServiceCallback)))]
public interface IDataServiceCallback
{
[OperationContract(IsOneWay =tr