如何利用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如下:
总结:
事件发布/订阅模型有着广泛应用,比如实时任务调度,多人在线游戏,即时聊天,软件版本的自动更新等等。只有你想不到,没有你做不到:)
欲下载本文源代码,请点击此处
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如下:
总结:
事件发布/订阅模型有着广泛应用,比如实时任务调度,多人在线游戏,即时聊天,软件版本的自动更新等等。只有你想不到,没有你做不到:)
欲下载本文源代码,请点击此处
相关文章推荐
- 基于WCF的事件发布/订阅系统
- 发布订阅 - 基于A2DFramework的事件机制实现
- 利用WCF的callback机制开发一个简单的多人游戏模型
- WCF 4.0 进阶系列 – 第十六章 使用回调合约发布和订阅事件(第二部分)
- WCF 4.0 进阶系列 – 第十六章 使用回调合约发布和订阅事件(第一部分)
- 信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务 .
- 在今天,利用 HTML5 开发和发布大型跨平台网游,可行性如何?要解决哪些问题?
- 利用 AXIS开发Webservice(一) —— 如何发布自己的webservice(转)
- 利用AXIS开发Webservice(一) —— 如何发布自己的webservice (目的:学习)
- 基于.Net C/S结构系统开发框架V2.2正式发布!
- 基于EventAggregator的事件发布及订阅
- redis利用pipline实现发布订阅机制
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- 基于JS原生的事件订阅和发布模式代码
- 如何才能系统的学习 iOS 开发,理解一些规则和深层次的机制原理
- 牛腩新闻发布系统———如何在开发中使用第三方控件
- 如何建立一个基于事件驱动的全自动化交易系统
- 如何才能系统的学习 iOS 开发,理解一些规则和深层次的机制原理?
- 利用Vista新技术WCF开发构建服务系统
- [WCF-Discovery] 实例演示:如何利用服务发现机制实现服务的“动态”调用?