可在廣域網部署運行的QQ高仿版 -- GG嘰嘰V3.0,完善基礎功能(源碼) 可在廣域網部署運行的QQ高仿版 -- GG2013概要

  (前段時間封閉式開發完了一個項目,最近纔有時間繼續更新GG的後續版本,對那些關注GG的朋友來講,真的是很抱歉。)GG的前面幾個版本開發了一些比較高級的功能,像視頻聊天、遠程桌面、文件傳送、遠程磁盤等,可是,有一些基礎且必需的功能一直未實現,好比註冊、添加好友、加入羣、羣聊天等等。常常有朋友留言問這些功能要怎麼作,GG3.0終於能夠給出一個答案了。html

  先提醒一下,GG3.0中這些基礎功能的實現方式是比較粗糙的,我尚未時間深刻考慮性能、緩存等問題(源碼中我以「建議」的字樣標註了須要優化的地方),後續版本,我會將它們一一優化。因爲長時間未更新,火燒眉毛地先放個版本出來給你們參考。數據庫

一.GG V3.0 新增功能展示 

(1)註冊新賬號。緩存

(2)添加好友(包括:通知對方、好友上下線通知)。服務器

(3)加入羣(包括:通知其它羣友、羣友上下線通知)。函數

(4)羣聊天。post

(5)之前版本的賬號只能爲數字(就像QQ同樣),可是,3.0及之後版本,賬號中能夠包含字母。性能

      廢話很少說,仍是先上圖。測試

  註冊:優化

          

  添加好友:url

      

  加入羣:

     

  羣聊天:

     

 

二.實現思路

  雖然提供了源代碼,可是,我仍是想將主要的思路列一下,這樣,你們理解起源碼來,會節省更多的時間。

1.虛擬數據庫

(1)爲了部署測試更簡單,GG沒有采用真實的物理數據庫,而是在內存中虛擬了一個數據庫(即服務端的VirtualDB類),用於存儲用戶註冊信息、好友關係、羣信息等。

(2)GG內置了幾個用戶:10000、1000一、1000二、1000三、10004,它們的登陸密碼都是"1"。

(3)GG內置的這幾個用戶之間都是好友關係。

(4)GG內置了兩個羣:G00一、G002。G001羣包含全部內置測試用戶,G002羣包含10000和10001兩個用戶。

(5)上述的這些內置信息,在VirtualDB類的構造函數中設定。

2.服務端主要變動

(1)RegisterService:服務端發佈了一個Remoting服務RegisterService,用於提供註冊服務。因爲註冊以前,用戶賬號還不存在,因此,不能經過ESFramework來實現。

(2)FriendsManager:服務端增長了FriendsManager類,以提供好友關係信息。

(3)GroupManager:服務端增長了GroupManager類,以提供羣/組的信息。

(4)BasicHandler:服務端修改了BasicHandler類的實現,以驗證客戶端登陸的用戶賬號密碼。

(5)CustomizeHandler:服務端修改了CustomizeHandler的實現,使之能夠處理來自客戶端的各類請求消息(如加入羣、加好友等請求)。

3.客戶端主要變動

(1)增長RegisterForm、AddFriendForm、JoinGroupForm、GroupChatForm四個窗體分別用於註冊、添加好友、加入羣、羣聊天。

(2)增長GlobalUserCache類,用於緩存全部的好友信息。

(3)客戶端接收到的全部消息都是在MainFormPartial.cs文件中處理的,包括廣播消息(如羣聊)

(4)用戶信息使用User類封裝(位於GG.Core項目的Entity.cs文件中)。

 

三.GG V3.0 源碼下載 

下載最新版本,請轉到這裏。 

 注意:若是要將GG部署到廣域網,則能夠在服務端的配置文件中設置監聽的端口;而在客戶端的配置文件中,則能夠指定服務器的IP和Port。

 

關於GG的最新全貌介紹,我單獨寫了一篇文章,做爲彙總,可參見 可在廣域網部署運行的QQ高仿版 -- GG2013概要。 

歡迎和我探討關於GG2013的一切,個人QQ:2027224508,多多交流!  

你們有什麼問題和建議,能夠留言,也能夠發送email到我郵箱:ggim2013@163.com。 

若是你以爲還不錯,請粉我,順便再頂一下啊,呵呵  

相關文章
相關標籤/搜索