【轉】可在廣域網部署運行的即時通信系統 -- GGTalk總覽(附源碼下載)

  原文地址:http://www.cnblogs.com/justnow/p/3382160.htmlhtml

(最新版本:V6.0,2017.12.11 。即將推出Xamarin移動端版本,包括 Android 和 iOS)     android

  GGTalk開源即時通信系統(簡稱GG)是QQ的高仿版,同時支持局域網和廣域網,包括客戶端(PC客戶端、android移動端)、服務端、數據庫。從2013年最初的GG1.0開放源碼以來,到後來陸續增長了網盤功能、遠程協助功能、離線文件功能、羣聊功能、語音聊天功能、視頻聊天功能、以及視訊錄製功能、和增長了數據庫。我想寫一個相似彙總的文章,經過這篇文章,你們能夠了解到GGTalk開源即時通信系統的全貌和最新進展,以及關於一些常見問題的解答也彙總在這裏。sql

  言歸正傳,對我我的而言,個人目標並非作一個QQ高仿版的玩具,而是但願作成一個可以真正使用的產品(這個過程還有很長的路要走),並持續維護下去。數據庫

          想要直接下載體驗的朋友請點擊:源碼下載中心緩存

一.GGTalk開源即時通信系統已實現的功能

(01)註冊、登陸、查找用戶、添加好友、好友列表。安全

(02)自拍頭像。服務器

(03)文字聊天、字體設置、GIF動態表情、窗口震動、截圖、手寫板、登陸狀態(在線、離開、忙碌、勿打擾、隱身)、輸入提醒測試

(04)羣功能:建立羣、加入羣、退出羣、羣聊天字體

(05)文件傳送、文件夾傳送(支持斷點續傳)gradle

(06)語音視頻聊天

(07)遠程磁盤

(08)遠程協助

(09)共享桌面(能夠指定要共享的桌面區域)

(10)可靠的P2P

(11)網盤   

(12)離線消息

(13)離線文件

(14)托盤閃動:跟QQ徹底同樣,當接收到消息時,托盤會閃動對應好友的頭像。點擊頭像,將彈出與好友的聊天框。

(15)最近聯繫人列表

(16)系統設置:開機自動啓動、麥克風設備索引、攝像頭設備索引,叉掉主窗口時關閉程序仍是隱藏窗口。

(17)聊天記錄:支持本地保存和服務器端保存兩種方式。

(18)好友分組:新增/刪除分組,修改分組名稱,改變好友的所屬分組。

(19)打開聊天窗口時,自動顯示上次交談的最後一句話。

(20)輸入提醒:像QQ同樣,當對方正在輸入消息時,我這邊的聊天框能夠看到對方「正在輸入」的提示。

(21)自動記錄:GG2014會自動記錄上次打開的主界面的位置、大小;最後一次打開的聊天窗口的大小;最後一次設定的字體的顏色、大小等。 

(22)主窗體靠邊自動隱藏。

(23)錄製視頻聊天。

(24)支持數據庫(SqlServer 2000/2005/200八、MySQL),並能夠經過配置在真實數據庫和虛擬數據庫之間自由切換。 

(25)語音視頻設備測試   

(26)聊天消息加密

(27)系統通知

 

二.開發環境及GGTalk即時通信源碼說明

1. 服務端和PC端 :VS2010 ,開發語言:C#, .NET Framework 版本: 2.0 

2. android移動端:android studio 1.3.2 ,gradle 1.3 

3. 部署PC客戶端時,客戶端機器還須要安裝 VC++ runtime(200八、20十、2013)。

4. 如果要開始研究GG的源碼,客戶端和服務端的入口分別是:

(1)客戶端:請特別關注 MainFormPartial.cs 這個文件,客戶端接收到的消息幾乎都是在這個文件中處理的;GlobalUserCache類用於緩存全部的用戶信息、羣組信息、包括本地持久化這些信息,以及根據版本號自動更新這些信息。

(2)服務端:請特別關注 CustomizeHandler.cs 這個文件,服務端接收到的消息幾乎都是在這個文件中處理的;GlobalCache類用於緩存全部的用戶信息、羣組信息,並與真實/虛擬數據庫進行交互。

   

三.相關說明

1.若是要將GGTalk開源即時通信系統部署到廣域網,則能夠在服務端的配置文件中設置監聽的端口;而在客戶端的配置文件中,則能夠指定服務器的IP和Port。

2.麥克風、攝像頭的選擇可在客戶端系統設置窗口(SystemSettingForm)中指定。

3.語音視頻:也有不少朋友問語音視頻設備的工做怎麼不正常,或者語音視頻不流暢,這個能夠直接參考OMCS官方文檔:攝像頭、麥克風、揚聲器設備測試 、帶寬要求

4.特別說明一下:GG項目中,只要是我寫的代碼,所有都放出來了。拜託喜歡每個dll都有源碼的朋友不要再問我要其它的源碼了:)

   

四.源碼版本記錄

2013.08.07  --  V1.0, 登陸、好友列表、文字聊天、文件傳送、文件夾傳送

2013.09.02  --  V1.8, 語音視頻聊天

2013.09.23  --  V2.0, 網盤、遠程磁盤

2013.11.05  --  V2.4, 遠程協助、共享桌面

2014.04.15  --  V3.0, 註冊、加好友、加入羣、羣聊

2014.05.16  --  V3.2, 離線消息、離線文件

2014.05.28  --  V3.4, 系統設置、最近聯繫人

2014.06.30  --  V3.5, 自拍頭像、修改密碼、刪除好友

2014.08.06  --  V3.6, 語音消息、語音留言 

2014.09.16  --  V3.7, 優化視頻聊天 

2014.11.06  --  V4.0, 聊天記錄、好友分組、登陸狀態、GIF動態表情

2014.12.31  --  V4.1, 托盤閃動消息提醒、公開JustLib源碼。

2015.03.25  --  V4.2, 主窗體靠邊自動隱藏

2015.06.17  --  V4.3, 視頻聊天全過程錄製,生成標準的MP4文件。

2015.09.02  --  V4.4, 增長對SqlServer數據庫的支持,並能夠經過配置在真實數據庫和虛擬數據庫之間自由切換。 增長語音視頻設備測試功能。

2015.09.02  --  V4.4, 客戶端增長Android移動端版本。

2016.01.20  --  V4.5, 加密聊天消息,讓通訊更安全!語音視頻優化,視頻聊天更流暢!

2016.05.30  --  V5.1, 增長系統通知功能,並支持與Web集成!

2016.12.06  --  V5.5, 增長對MySQL數據庫的支持!

 2017.12.11  --  V6.0, 增長Xamarin移動端,包括 Android 和 iOS!

 

五.GG截圖

0. android 移動端

           

1.登陸框

       

2.主窗體、最近聯繫人

           

3.聊天窗口                                                                                 

          

4.視頻會話邀請、視頻會話    (2015.06.17 增長視頻聊天錄製功能) 

                  

5.磁盤訪問請求、進入遠程磁盤

             

6.遠程磁盤操做

      

7.網盤

      

8.遠程協助

            

9.共享桌面(指定了QQ影音播放器的區域做爲共享區域)

      

10.註冊:

          

11.添加好友:

      

12.加入羣:

     

13.羣聊天:

     

14.離線消息:

      

15.發送離線文件:

      

16.離線文件發送完成、接收完成:

   

17.系統設置:

       

18.自拍頭像:

      

19.使用自拍頭像:

      

20.聊天記錄:

  

21.好友分組:

  

22.正在輸入:

  

 

六.最新源碼下載

1.GGTalk服務端和PC端源碼     

     源碼下載:GGTalk-V6.0源碼.rar     網盤下載更快

   部署下載:GGTalk V6.0 可直接部署版本    網盤下載更快

    (壓縮包中有 《部署說明.txt》 和 建立數據庫的腳本 《GGTalk.sql》)

      注:個人GGTalk使用VS2010編譯生成的GGTalk.exe文件,這個文件有時會被新毒霸報是病毒,也許是編譯生成的GGTalk.exe文件中有某段數據與病毒庫中的某特徵符合吧,你們幫我看看源碼中有那段代碼像是病毒了:)

部署說明:      

1.當前版本服務端默認配置爲內存虛擬數據庫版本,不須要安裝數據庫。

2.將GGTalk.Server文件夾拷貝到服務器上,運行GGTalk.Server.exe。

3.修改客戶端配置文件GGTalk.exe.config中ServerIP配置項的值爲服務器的IP。

4.運行客戶端,註冊賬號登陸試用。

5.內置測試賬號爲 10000,10001,10002,10003,10004;密碼都是 1。 

6.若要測試android移動端,請先修改安卓源碼中服務器的IP和端口,而後從新編譯生成apk。 

若是須要使用真實的物理數據庫,則需按下列步驟進行:

1. 在SqlServer 2000/2005/2008 中新建數據庫GGTalk,而後在該庫中執行 SqlServer.sql 文件中的腳本以建立所需表。

    (若是要使用MySQL數據庫,則使用MySQL.sql腳本)

2. 打開服務端的配置文件GGTalk.Server.exe.config

(1)修改 UseVirtualDB 配置項的值爲false。

(2)修改 DBType 爲 SqlServer 或 MySQL。

(3)修改 DBIP 配置項的值爲數據庫的IP地址。

(4)修改 SaPwd 配置項的值爲數據庫管理員sa的密碼。

3.修改客戶端配置文件GGTalk.exe.config中ServerIP配置項的值爲服務器的IP。

4.運行客戶端,註冊賬號登陸試用。

2.GGTalk即時通信系統安卓源碼     

      GG安卓版本已實現以下功能:

(1)登陸服務端

(2)文字聊天,表情圖片,消息提醒

(3)好友列表

(4)顯示好友在線狀態

(5)文件傳輸

     源碼下載:GG-android源碼.rar     網盤下載更快   (若要和PC端聯合測試,請關閉PC端那邊的聊天消息加密功能:將PC客戶端項目的GlobalResourceManager類的 des3Encryption 成員賦值爲 null 便可!)

     說明:本安卓demo屬於入門級水平,目的是爲了展現與PC打通的基本實現。若要將GG安卓版本的源碼用於正式項目中,建議先對其進行重構,或者敬請等候後續更完善的版本分享給你們!

 

幾句題外話:雖然就如何將GG發展爲一個有商業價值的產品,我尚未很清晰明確的思路,可是從GG發佈以來,經過GG認識了一些朋友,也接了一些小單子,賺了一點小錢。有了一點甜頭,目前和二、3個好朋友一塊兒作作小項目也是不錯的,這何嘗不是一條養家餬口之路了?呵呵。

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

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

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

相關文章
相關標籤/搜索