GGTalk是QQ的高仿版,包括客戶端和服務端,可在廣域網路部署使用,是一個使用.net進行開發的即時通訊系統。我想寫一篇類似總結的文章,透過這篇文章,大家可以了解到GG的全貌和最新進展,以及關於一些常見問題的解答也總結在這裡。
言歸正傳,對我個人而言,我的目標並不是做一個QQ高仿版的玩具,而是希望做成一個能夠真正使用的產品(這個過程還有很長的路要走),並持續維護下去。
一.已實現的功能
(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)錄製視訊聊天。
二.後續待實現的功能
(1)增加持久化支持
(2)視訊會議
三.GGTalk開發環境
開發環境:VS2010,開發語言:C#,.NETFramework版本:2.0
部署客戶端時,客戶端機器還需要安裝VC++2008runtime、VC++2010runtime。
四.GGTalk相關說明
1.如果要將GG部署到廣域網,則可以在服務端的設定檔中設定監聽的連接埠;而在客戶端的設定檔中,則可以指定伺服器的IP和Port。
2.虛擬資料庫
(1)為了部署測試比較簡單,GG沒有採用真實的實體資料庫,而是在記憶體中虛擬了一個資料庫(即服務端的VirtualDB類別),用於儲存使用者註冊資訊、好友關係、群組資訊等。
(2)GG內建了幾個使用者:10000、10001、10002、10003,它們的登入密碼都是"1"。
(3)GG內建的這幾個使用者之間都是好友關係。
(4)GG內建了兩個群組:G001、G002。 G001群包含所有內建測試用戶,G002群包含10000和10001兩個用戶。
(5)上述的這些內建訊息,在VirtualDB類別的建構子中設定。
3.麥克風、攝影機的選擇可在客戶端系統設定視窗(SystemSettingForm)中指定。
4.語音視訊:也有很多朋友問語音視訊設備的工作怎麼不正常,或是語音視訊不流暢,這個可以直接參考OMCS官方文件:相機、麥克風、揚聲器、設備測試、頻寬要求。
5.特別說明一下:在GG專案中,只要是我寫的程式碼,全部都放出來了。拜託喜歡每個dll都有源碼的朋友不要再問我要其它的源碼了:)