当前位置: > 网站建设 > silverlight教程 >

Silverlight与WCF之间的通信(2)利用WCF的双工通信“推送”给SL数

时间:2012-04-09 | 栏目:silverlight教程 | 点击:

一,Duplex简介

上一个随笔记录了SL利用Timer定时去WCF上取数据再绑定到界面上的问题,今天尝试用了WCF的Duplex 双工通信来做这个事情,也以这个例子来说明WCF中Duplex的使用。

双工通信的原理很简单,我们平时用的是客户端调用服务端的方法来获取数据,而Duplex是将客户端 也当作了服务器,客户端上的方法也可以被调用,以聊天功能为例子,用户A连接到服务器后,之前的做 法是客户端定时取数据,而Duplex是在服务端定时检测数据变化,如果发现了发送给A的信息,那么立即 会调用客户端的方法来推送信息到A。

二,建立Duplex模式的WCF服务

这里以一个简单的聊天功能来说明,WCF提供了三个方法,连接到服务器方法,发送信息方法和接收信 息方法。从服务契约上来说分为两个接口,分别是为客户端提供发送信息和开始聊天方法的IChatService 接口和服务器调用客户端方法的IChatServiceCallBack接口

IChatService.cs文件

namespace ChatWCF
{
      [ServiceContract(CallbackContract=typeof(IChatServiceCallBack))]//这里需要定义 IChatService接口的回调接口IChatServiceCallBack 
     public interface IChatService
     {
         [OperationContract]
         bool SendMessage(MessageInfo msg); //发送信息
         [OperationContract]
         bool LoginChat(string User,string Partner);//开始聊天模式
     }
     [ServiceContract]
     public interface IChatServiceCallBack //供服务端回调的接口
     {
         [OperationContract(IsOneWay=true)]
         void ReceiveMessages(List<MessageInfo> listMessages);//客户端被服 务端回调后接收信息
     }
}

您可能感兴趣的文章:

相关文章