前段時間看到園子裡有朋友開發了QQ高仿版的程式,我也非常有興趣,以前一直有個做即時聊天程式的夢,趁這段時間工作不是很忙,就開始動手來做這個事情。根據我以往積累下來的專案經驗,實現QQ的基本功能,問題應該不大。當然,我的目標並不是做一個QQ高仿版的玩具,而是希望做成一個能能夠真正使用的產品(當然是免費的),並持續維護下去。想為這個聊天工具取個名字,就抽取了“嘰嘰歪歪”中的“嘰嘰”(GG)作為暫時的名稱吧。
一.GG的功能規劃
我想分成幾個階段來開發GG,每個階段一個版本,從簡單到複雜,從玩具到產品。大體規劃如下:
1.GG V1.0
(1)登入、好友列表。
(2)文字聊天、字型設定、表情、視窗震動、截圖、手寫板
(3)檔案傳送、資料夾傳送
2.GG V2.0
(1)語音視訊聊天
(2)網盤
(3)遠端磁碟
目前,V2.0版本已經發布,語音視訊聊天、網盤、遠端磁碟等功能已經實現。
3.GG V3.0
(1)GG群
(2)遠端協助
(3)視訊會議
4.GG V4.0
(1)聊天記錄
(2)離線訊息
(3)離線檔案
(4)增加持久化支援
5.GG V5.0 & more...
二.框架選型
如果要完全從頭開發GG,其難度可想而知,所以,利用現有的成熟框架是必要的,我們必須站在別人的肩膀上,才能做得更快更好。GG V1.0 所採用的框架和素材如下:
(1)通訊框架:ESFramework
(2)語音視訊:OMCS
(3)皮膚框架:SkinForm
(4)截圖類庫:ImageCapturerLib
(5)圖片素材:90%以上來自QQ。
ESFramework和OMCS都是園子裡zhuweisky的作品,已經相當成熟,不多說。SkinForm是我從網上找的一套類似QQ介面的皮膚框架(沒有專門的專案網址),有些小bug,能將就用。ImageCapturerLib也是網上找的,並有原始碼,我把發現的一個bug已經修復了。由於是高仿QQ,所以,GG中用到的絕大多數圖片都是從QQ裡面拿過來的(商用也許會有版權問題)。
三.GG V1.0 功能展現
GG整個解決方案分為三個專案:服務端GG.Server(直接將ESFramework的demo的服務端搬了過來)、客戶端GG、定義訊息型別和協議的GG.Core。
至於GG V1.0是如何實現的,內部並不是很難(最困難的事情都讓上述框架給做了),大家可以下載原始碼自己研究,我就不多費口舌了。下面就截幾張執行時的圖片吧,跟QQ是不是非常像了?
1.登入框
2.主窗體
3.聊天視窗
四.原始碼下載
下載最新版本,請轉到這裡。
注意:如果要將GG部署到廣域網,則可以在服務端的配置檔案中設定監聽的埠;而在客戶端的配置檔案中,則可以指定伺服器的IP和Port。
GG最新進展總覽連結:可在廣域網部署執行的QQ高仿版 -- GG2013總覽
大家有什麼問題和建議,可以留言,也可以傳送email到我郵箱:ggim2013@163.com。
如果有人有興趣來參與GG後續版本的開發,那就更好了,儘管email給我。
如果你覺得還不錯,請粉我,順便再頂一下啊,呵呵