您的位置:首页 > 其它

如何利用callback机制开发基于WCF的事件发布/订阅系统

2008-10-31 17:14 866 查看
在WCF中,我们可以给service contract指定callbackContract来进行回调, 而回调接口由客户端实现。为了说明问题,我们设计了一个简单的scenario。

scenario description:

假设WCF service提供简单的AddTo(),即进行累积。客户端通过proxy消费这个service并将计算结果发布到所有注册了回调通道的其他客户端。

回调接口设计如下:

Code

class CallBack:ICaculatorServiceCallback

{

public void Equals(int n)

{

Console.WriteLine("I have received a broadcasting news,the callback result is {0}", n.ToString());

}

}

class Program

{

static void Main(string[] args)

{

try

{

System.ServiceModel.InstanceContext callbackInstance = new System.ServiceModel.InstanceContext(new CallBack());

CaculatorServiceClient proxy = new CaculatorServiceClient(callbackInstance);

proxy.Open();

Console.WriteLine("I am another listener, and I am receiving all broadcasting news\n--------------------------------------------");

proxy.Register();

Console.ReadLine();

proxy.Close();

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

Console.ReadLine();

}

}

}
运行screenshot如下:



总结:

事件发布/订阅模型有着广泛应用,比如实时任务调度,多人在线游戏,即时聊天,软件版本的自动更新等等。只有你想不到,没有你做不到:)

欲下载本文源代码,请点击此处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: