(最新版本: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。
如果你覺得還不錯,請粉我,順便再頂一下啊