前段時間看到園子裏有朋友開發了QQ高仿版的程序,我也很是有興趣,之前一直有個作即時聊天程序的夢,趁這段時間工做不是很忙,就開始動手來作這個事情。根據我以往積累下來的項目經驗,實現QQ的基本功能,問題應該不大。固然,個人目標並非作一個QQ高仿版的玩具,而是但願作成一個能可以真正使用的產品(固然是免費的),並持續維護下去。想爲這個聊天工具取個名字,就抽取了「嘰嘰歪歪」中的「嘰嘰」(GG)做爲暫時的名稱吧。html
我想分紅幾個階段來開發GG,每一個階段一個版本,從簡單到複雜,從玩具到產品。大致規劃以下:服務器
1.GG V1.0框架
(1)登陸、好友列表。工具
(2)文字聊天、字體設置、表情、窗口震動、截圖、手寫板字體
(3)文件傳送、文件夾傳送spa
2.GG V2.0orm
(1)語音視頻聊天視頻
(2)網盤htm
(3)遠程磁盤blog
目前,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整個解決方案分爲三個項目:服務端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給我。
若是你以爲還不錯,請粉我,順便再頂一下啊,呵呵