• WCF duplex service + silverlight 聊天代码


    WCF duplex service 通过这个聊天程序练习了一把, 基本通讯流程大概走通了, 这个聊天代码也就告一段落了, 谢谢,这中间给我提意见得朋友,呵呵.

    演示地址: http://www.shareach.com:81/chat

    碰到的问题:http://www.cnblogs.com/yinpengxiang/archive/2009/03/23/slChat.html

    代码整理了一下, 在此发布出来, 后面的更新就不在WCF duplex Service的范畴之内了; 后面有时间我再把登录/注册和资料维护做进来, 还有前面提到的地图/相册等. 希望有更新或者看了我源码得朋友能给我提点意见. 欢迎大家将此代码作为技术交流, 但不要作为其它用途.

    下面对solution里面各个project做一个简要说明吧:

    1.服务端, 2个project

    Service

    Contract 是服务端和客户端数据接口,和通讯的数据协议结构, 以及Service接口, 其实IChat可以不放在里面, 开始以为Duplex一定要用普通WCF Service得契约方式, 呵呵,懒得改了.

    Service项目就是普通得WCF Service而已, 参考MSDN的 Factory代码, 我几乎是照抄得, 然后看了Webabcd得代码,把英文换成中文了.

    WebSvr.aspx这个文件说一下, 是为了js实现让service马上知道退出用得,其实没多大用,呵呵.

    ChatChecker: 消息的route和dispatch都是他来做的, 我还在里面用了个timer实现定时轮询客户端(这个地方总感觉有问题), 以便及时的了解客户端是否在线, 然后一个下线客户端的list, 一遍广播所有下线消息到各个客户端; 具体大家看代码吧, 呵呵.

    在ChatService里面主要就是接受消息,然后异步调用ChatChecker这个类.

    ChatMessage和Data:是消息发送的协议类, 我在里面封装了消息收发的协议结构:消息包结构/消息类型/聊天信息类型;  消息正文是通过json序列化方式放到消息包里面, 这样C-S双方只需要根据消息类型就可以反向出具体的消息实例了.


    2.客户端, 4个project

    client

    Chat 是大家能看到的Silverlight Chat UI项目,

    chat.Web silverlight的web项目,

    Contract是消息协议定义

    Core是公用函数, 就封装了2个正反序列化的函数


    代码没有太多的整理, 特别是消息的收发, 只是为了验证WCF Duplex Service, 没有做太多的性能处理. 希望大家多多提意见.

    再次声明:欢迎大家将此代码作为技术交流, 但不要作为其它用途.

  • 相关阅读:
    [转载]从零开始学习OpenGL ES之一 – 基本概念
    ios中陀螺仪CoreMotion的使用
    如何在IOS中使用3D UI – CALayer的透视投影
    cocos3d加载3Dmax模型到ios中
    cocos2d 坐标系统参考
    PAT 1029 Median
    PAT 1028 List Sorting
    Linux中的进程调度(二)
    LaTeX学习(一)
    搬家
  • 原文地址:https://www.cnblogs.com/yinpengxiang/p/1424724.html
Copyright © 2020-2023  润新知