SilverLight搭建WCF聊天室详细过程 系列文章为大家演示了如何使用SilverLight搭建WCF即时通讯系统过程,多人视频正在开发中,我会持续更新这个系列,以后几篇我会对群里提出最多的问题进行解答并给出设计思路,WCF和IIS配置已经包含在此系列,希望各位朋友在提问前先找找前面的帖子,QQ群:.NET集中营45656086,位置已经不多,群里高手很多,而且比较有开源精神,我是营长,有问题大家可以在博客园留言或者进营!

        很多朋友在群里提问想知道SilverLight调用服务和WCF服务回调客户端的过程,我先给出大家这个过程的流程图,后面将会以聊天室为代码源通过代码为大家慢慢道来。

        描述:

        当WCF配置完毕时,使用SL客户端添加服务引用,会生成一个Reference.cs文件,这个文件是隐藏的,可以在Service References文件夹下找到,打开这个文件我们就可以看到服务端的服务接口函数以及回调函数,只不过服务接口函数后面都加上Async后缀,回调函数都加有Received后缀,同时这里面会生成一个代理类名字为服务接口名+Client,我们调用WCF服务端就是通过这个类实现。

        当我们初始化代理类对象后就可以使用服务接口函数,例如服务接口有函数Message(string content),用代理类对象调用MessageAsync("")就开始实现异步调用,代理类会找到WCF服务端服务接口实现类里的这个接口函数的实现,例如我在这个函数里通过代码实现回调客户端自己。

        WCF回调客户端是通过通道技术,这里我们姑且说成通道,在SL第一次调用WCF服务端时就生成这个通道,每个SL客户端和WCF都有一个不同的通道,这就是WCF和客户端的联系,我们获取通道代码:IchatClient currentClient = OperationContext.Current.GetCallbackChannel<IchatClient>();这里我的回调接口名为IchatClient,获取的通道直接写成回调接口型,我们就可以使用回调接口里的函数,从而就可以调用回调函数rMessage(""),剩下的工作就是等待客户端定义的回调监听委托接收到消息,然后传送到处理函数,这就实现了一个轮回过程。

        至于中间如何通信过程WCF已经为我们进行了封装,我们不必关心底层是怎么实现通信的,只要把握住这个调用过程就可以。

        好了,本篇就讲到这里,如果觉得对你有用,点下推荐,算是对我的认可,谢谢!

作者: fugitiver 发表于 2010-12-29 14:42 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架