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


        大家都知道,一般能使用WCF的Callback Contract能实现聊天室。这篇文章我将使用WF4.0是实现我的伤心聊天室。先看效果,再讲如何实现和使用WF4.0的优势,最后总结。界面很简洁,请见谅。

    效果篇:

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

    shangxin001

    登录:

    shangxin002

    聊天主界面:

    shangxin003

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

    麒麟发送信息:

    shangxin004

    美女A接受到信息,如下图:

    shangxin005

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

    实现篇:

    本文是利用了WF4.0里面的WCF服务的双工通信实现的,WF4.0里面的双工通信与WCF里面的实现方法不一样。详细见下面两篇文章:

    Workflow 4 Services and duplex communications译文

    More Workflow 4 Services and duplex communications译文

    说到这里,你应该很清楚是如何实现的了。对,还是利用了WCF技术。不过我还是要讲述一下如何用WF4.0去实现的,这样也能加深你对WCF和WF的了解和以及它们之间的区别。

    下图是我的代码的项目结构图:

    shangxin006

    ChatRoomService是WCF Workflow Service Application项目

    ChatRoom_Client是WindowsForm项目

    StartAChatRoom是控制台应用程序。

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

    我假设你和我一样,对WCF稍微有些了解。否者就很难进行下去。:)

    看下图:

    shangxin007

    上图可以看到伤心聊天室的逻辑了。它一共有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服务。
    双击“加入聊天室”,看下面的截图:
    shangxin008 

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

    WF4.0优势可视化编程、直观、简单、设计时无代码或者很少量的代码。

    总结:通过使用WF4.0实现了一个简单的聊天室,我想这个Demo还可以扩展。有建议和问题给我留言,谢谢,欢迎加入博客园WF4.0技术交流群。

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



    (全文完)


    以下为广告部分

    您部署的HTTPS网站安全吗?

    如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

    SSL检测评估

    快速了解HTTPS网站安全情况。

    安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

    SSL证书工具

    安装部署SSL证书变得更方便。

    SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

    SSL漏洞检测

    让服务器远离SSL证书漏洞侵扰

    TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

  • 相关阅读:
    PHP+MySQL存储数据出现中文乱码的问题
    IE和火狐的css兼容性问题
    JS调用Webservice
    NET-使用Js调用WebService
    ASP.NET 与 Ajax 的实现方式
    未能加载文件或程序集“System.Web.Extensions, Version=1.0.61025.0, Culture=neutral
    c#webservice的简单示例
    HttpRequest Get和Post调用其他页面的方法
    MYSQL 递归操作
    sql with as 用法
  • 原文地址:https://www.cnblogs.com/zhuqil/p/shangxinliaotianshi.html
Copyright © 2020-2023  润新知