一、AgileEAS.NET SOA中間件Socket/Tcp框架介紹
在文章AgileEAS.NET SOA 中間件平台Socket/Tcp通信框架介紹一文之中我們對AgileEAS.NET SOA中間Socket/Tcp框架進行了總體的介紹,我們知道
AgileEAS.NET SOA中間件Socket/Tcp框架是一套Socket通信的消息中間件:
二、簡單的服務器客戶段消息應答
在文章AgileEAS.NET SOA 中間件平台Socket/Tcp通信框架-簡單例子-實現簡單的服務端客戶端消息應答中我們實現了一個簡單的客戶端消息請求==>服務端應答的簡單的Socket應用。
三、完整的應用-實現完整的聊天室
本文我們將實現一個多人聊天室的應用,類似於早年的網絡聊天室或者當年的QQ網絡聊天室或者游戲里面的聊天功能,聊到室主界面如下:
聊天室支持公聊和私聊頻道,理論上可以支持幾百甚至幾千人,具體上限沒有經過測試,在這個案例之中,大家將會掌握基於AgileEAS.NET SOA中間件Socket/Tcp框架的比較復雜的消息定義及消息處理及消息協調,同時還會掌握如何管理服務端的鏈接、聊天室用戶在線狀態、消息的多目標轉發等功能。
本案例的可執行客戶端程序和服務端已經在我們的服務器上為大家部署了一套,大家可以下載客戶段http://42.121.30.77/downloads/eas/examples/chat.client.rar體驗,下載客戶端壓縮包之后解壓縮,注冊一個賬號就可以使用這個賬號登錄我們為大家搭建的聊天室服務端。
三、下載源代碼編譯配置運行
本案例源代碼請通AgileEAS.NET SOA中間件官方網站的最新下載中的欄目進行下載或者從SVN中獲取最新版本的源代碼:
下載或者SVN-OUT得到代碼之后我們來看一下代碼文建構:
| 一級目錄 |
二級目錄 |
說明 |
| Code |
程序源代碼 |
|
| Entities |
實體(ORM)代碼 |
|
| BLL.Contracts |
業務契約定義代碼 |
|
| BLL.Host |
數據實現代碼 |
|
| Messages |
Socket通信消息定義 |
|
| Services |
Socket服務定義 |
|
| ChatRoom |
客戶段程序代碼 |
|
| UserManage |
注冊用戶管理代碼 |
|
| db |
用戶數據庫文件,Sqlite數據庫 |
|
| Documents |
文檔,用戶模型文檔 |
|
| Publish |
引用程序集及編譯輸出 |
然后用VS2010或者VS2012打開Code目錄之中的ChatRoom解決方案進行編譯,編譯寫成之后我們開始進行配置。
打開Publish目錄之中的EAS.SOA.Server.exe.config進行服務端配置:
其中最重要的配置就是配置服務端sqlite數據庫文件的路徑,以及端口號,當然端口號是可以不用修改的,配置完成之后我們啟動Publish目錄之中的soaserver.start.bat指指理文件來啟動聊天室服務端:
啟動聊天室服務端的本質是啟動AgileEAS.NET SOA 中間件SOA服務,在SOA服務之中我們集成了Socket插件服務系統,我們的聊天室做為一個SOA的Socket插件服務被進行加載和處理,需要說明的是如果你的運行環境是Win7或者Win2008操作系統,需要以管理員權限運行啟動腳本:
接下來我們配置客戶段,打開ChatingRoom.MainClient.exe.config文件,修改以下地方:
這樣我們變完成了聊天室客戶端的配置,運行ChatingRoom.MainClient.exe程序啟動客戶端的登錄窗口:
點用戶注冊注冊一個新用戶:
注冊成功之后使用這個用戶登錄聊天室:
到時為止,聊天室案例的配置過程到此完成!
四、源代碼學習
要學習和研究本案例的源代碼,請參考:
1.AgileEAS.NET SOA 中間件平台Socket/Tcp通信框架介紹
2.AgileEAS.NET SOA 中間件平台Socket/Tcp通信框架-簡單例子-實現簡單的服務端客戶端消息應答
在之后的文章之中我們將會對本案例源代碼進行分析。
五、特別感謝
感謝團隊成員計文忻同學為大家編寫了本案例的第一版本,之后我在通信和界面上做了一些小的調整,也感謝王濤同學為本應用案例提供了Banner圖片和一些界面美工建議,也感謝在此案例進行測試和提出建議的客戶和小伙伴們。
六、聯系我們
為了完善、改進和推廣AgileEAS.NET而成立了敏捷軟件工程實驗室,是一家研究、推廣和發展新技術,並致力於提供具有自主知識產權的業務基礎平台軟件,以及基於業務基礎平台了開發的管理軟件的專業軟件提供商。主要業務是為客戶提供軟件企業研發管理解決方案、企業管理軟件開發,以及相關的技術支持,管理及技術咨詢與培訓業務。
AgileEAS.NET平台自2004年秋呱呱落地一來,我就一直在逐步完善和改進,也被應用於保險、醫療、電子商務、房地產、鐵路、教育等多個應用,但一直都是以我個人在推廣,2010年因為我辭職休息,我就想到把AgileEAS.NET推向市場,讓更多的人使用。
我的技術團隊成員都是合作多年的老朋友,因為這個平台是免費的,所以也沒有什么收入,都是由程序員的那種理想與信念堅持,在此我感謝一起奮斗的朋友。
AgileEAS.NET網站:http://www.agileeas.net
官方博客:http://eastjade.cnblogs.com
github:https://github.com/agilelab/eas
QQ:47920381
AgileEAS.NET QQ群:
113723486(AgileEAS SOA 平台)/上限1000人
199463175(AgileEAS SOA 交流)/上限1000人
120661978(AgileEAS.NET 平台交流)/上限1000人
212867943(AgileEAS.NET研究)/上限500人
147168308(AgileEAS.NET應用)/上限500人
172060626(深度AgileEAS.NET平台)/上限500人
116773358(AgileEAS.NET 平台)/上限500人
125643764(AgileEAS.NET探討)/上限500人
193486983(AgileEAS.NET 平台)/上限500人
郵件:james@agilelab.cn,mail.james@qq.com,
電話:18629261335。







![N6HE]4DVN%_N}6ST}FABXR3 N6HE]4DVN%_N}6ST}FABXR3](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvMTkwMjAvMjAxMzEwLzIxMTExNjA2LTMxYzVhNTU0MGQ3ZjQ4MTJiNDNjNjljYTMxODMxOTMzLmpwZw==.png)


![L$ZPI7X6_6N]1I`[TQZ)]9U L$ZPI7X6_6N]1I`[TQZ)]9U](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvMTkwMjAvMjAxMzEwLzIxMTExNjEyLTcxM2Q0MzhhNTk5MjRmZmQ5ZWI2OTYyNTdmNjQzOTBkLmpwZw==.png)

