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
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
Chat 是大家能看到的Silverlight Chat UI項目,
chat.Web silverlight的web項目,
Contract是消息協議定義
Core是公用函數, 就封裝了2個正反序列化的函數
?
?
代碼沒有太多的整理, 特別是消息的收發, 只是為了驗證WCF Duplex Service, 沒有做太多的性能處理. 希望大家多多提意見.
再次聲明:歡迎大家將此代碼作為技術交流, 但不要作為其它用途.
轉載于:https://www.cnblogs.com/yinpengxiang/archive/2009/03/30/1424724.html
總結
以上是生活随笔為你收集整理的WCF duplex service + silverlight 聊天代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sql server 2005系统表详细
- 下一篇: Adobe与Facebook联手推出Fl