可在廣域網部署執行的即時通訊系統 -- GGTalk總覽(附原始碼下載)

C#開源即時通訊GGTalk發表於2013-10-22

    (最新版本:V6.2,2019.01.03 。Xamarin移動端版本已經推出,包括 Android 和 iOS)     

  GGTalk開源即時通訊系統(簡稱GG)是QQ的高仿版,同時支援區域網和廣域網,包括客戶端(PC客戶端、android移動端)、服務端、資料庫。從2013年最初的GG1.0開放原始碼以來,到後來陸續增加了網盤功能、遠端協助功能、離線檔案功能、群聊功能、語音聊天功能、視訊聊天功能、以及視訊錄製功能、和增加了資料庫。我想寫一個類似彙總的文章,通過這篇文章,大家可以瞭解到GGTalk開源即時通訊系統的全貌和最新進展,以及關於一些常見問題的解答也彙總在這裡。

  言歸正傳,對我個人而言,我的目標並不是做一個QQ高仿版的玩具,而是希望做成一個能夠真正使用的產品(這個過程還有很長的路要走),並持續維護下去。

          想要直接下載體驗的朋友請點選:原始碼下載中心

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

(01)註冊、登入、查詢使用者、新增好友、好友列表。

(02)自拍頭像。

(03)文字聊天、字型設定、GIF動態表情、視窗震動、截圖、手寫板、登入狀態(線上、離開、忙碌、勿打擾、隱身)、輸入提醒

(04)群功能:建立群、加入群、退出群、群聊天

(05)檔案傳送、資料夾傳送(支援斷點續傳)

(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/2008、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(2008、2010、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!

2019.01.03 --   V6.2, PC版修復bug:更新組成員時,沒有更新組的version;修復MySQL分頁錯誤,以及查詢聊天記錄錯誤。Android版:增加好友線上狀態、群聊等功能。 

 

五.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.正在輸入:

  

 

六.最新原始碼下載

  最新原始碼下載以及部署說明文件,請參見這裡

________________________________________________________________________

 

幾句題外話:從GGTalk釋出以來,通過GGTalk認識了一些朋友,也接了一些小單子,賺了一點小錢。有了一點甜頭,目前和2、3個好朋友一起做做小專案也是不錯的,這未嘗不是一條養家餬口之路了?

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

大家有什麼問題和建議,可以留言,也可以傳送email到我郵箱:2027224508@qq.com。 

如果你覺得還不錯,請粉我,順便再頂一下啊

 

相關文章