快捷搜索:

WF4.0实战(十五):伤心聊天室

大年夜家都知道,一样平常能应用WCF的Callback Contract能实现谈天室。这篇文章我将应用WF4.0是实现我的悲伤谈天室。先看效果,再讲若何实现和应用WF4.0的上风,着末总结。界面很简洁,请见谅。

效果篇:

首先启动StartAChatRoom项目,开启悲伤谈天室如下图:

登录:

聊天主界面:

上图的左边有一个复选框,你可以选择向哪些人发送信息。右上角是脱离按钮。点击我要脱离,就关闭你的谈天室客户端。

麒麟发送信息:

美男A吸收到信息,如下图:

演示就到这里,下面讲述若何实现。

实现篇:

本文是使用了WF4.0里面的WCF办事的双工通信实现的,WF4.0里面的双工通信与WCF里面的实现措施不一样。具体见下面两篇文章:

Workflow 4 Services and duplex communications(译文)

More Workflow 4 Services and duplex communications(译文)

说到这里,你应该很清楚是若何实现的了。对,照样使用了WCF技巧。不过我照样要讲述一下若何用WF4.0去实现的,这样也能加深你对WCF和WF的懂得和以及它们之间的差别。

下图是我的代码的项目布局图:

ChatRoomService是WCF Workflow Service Application项目

ChatRoom_Client是WindowsForm项目

StartAChatRoom是节制台利用法度榜样。

下面我就说一下核心的逻辑,其他的部分详见代码。

我假设你和我一样,对WCF轻细有些懂得。否者就很难进行下去。:)

看下图:

上图可以看到悲伤谈天室的逻辑了。它一共有6个措施:

1、开启谈天室。

2、加入谈天室。

3、脱离谈天室。

4、将消息发送给所有人。

5、将消息指定发送给某些人。

6、获取本谈天室所有职员。

WF4.0的双工通信的实现部分是在客户段。

我在悲伤谈天室的每个客户段开启一个WCF办事,代码如下:

Random ro = new Random();

int point = ro.Next(8000, 9999);

ChatRoomCallback back = new ChatRoomCallback();

address = "http://localhost:" + point + "/ServiceCallback";

var serviceCallback = new ChatRoomCallback();

serviceCallback.MainFrm = this;

back.UISyncContext = SynchronizationContext.Current;

var host = new ServiceHost(serviceCallback, new Uri(address));

host.Open();

看上面代码你就知道,我将客户段的WCF办事的地址当参数传入办事端。假如你对WF轻细有些懂得,你就知道可以用Send活动去调用WCF办事。

双击“加入谈天室”,看下面的截图:

这样已经很明白了,我的文章都供给了代码下载,直接看代码吧。:)

WF4.0上风:可视化编程、直不雅、简单、设计时无代码或者很少量的代码。

总结:经由过程应用WF4.0实现了一个简单的谈天室,我想这个Demo还可以扩展。有建讲和问题给我留言,感谢,迎接加入博客园WF4.0技巧交流群。

代码:http://files.cnblogs.com/zhuqil/ChatRoomService.rar

转自:http://www.cnblogs.com/zhuqil/archive/2010/05/10/shangxinliaotianshi.html

您可能还会对下面的文章感兴趣: