可以部署在广域网执行QQ高仿版 GG2014 (源代码)
? 距上次GG V3.7版本號(hào)(可在廣域網(wǎng)部署執(zhí)行的QQ高仿版 -- GG嘰嘰V3.7。優(yōu)化視頻聊天、控制很多其它相關(guān)細(xì)節(jié))的公布。已經(jīng)有50天了,這50天對(duì)于GG來說。是一個(gè)重大的飛躍。
由于這段時(shí)間通過一些基于GG的實(shí)戰(zhàn)項(xiàng)目,發(fā)現(xiàn)了GG的非常多bug和不足之處,我都一一做了修正,并添加了一些基礎(chǔ)且必須的功能。這次公布的是GG V4.0版本號(hào),又稱為GG 2014。
一.GG 2014 新增功能展現(xiàn)
1.聊天記錄:支持本地保存和server端保存兩種方式。
2.好友分組:新增/刪除分組,改動(dòng)分組名稱,改變好友的所屬分組。
3.托盤閃動(dòng):跟QQ全然一樣,當(dāng)接收到消息時(shí)。托盤會(huì)閃動(dòng)相應(yīng)好友的頭像。點(diǎn)擊頭像,將彈出與好友的聊天框。
4.登錄狀態(tài):在線、離開、忙碌、勿打攪、隱身。
當(dāng)改動(dòng)自己的狀態(tài)時(shí),好友能同步看到自己的最新狀態(tài)。
5.動(dòng)態(tài)表情:聊天框支持插入GIF圖片、動(dòng)態(tài)表情。并播放動(dòng)畫。
6.輸入提醒:像QQ一樣,當(dāng)對(duì)方正在輸入消息時(shí),我這邊的聊天框能夠看到對(duì)方“正在輸入”的提示。
7.自己主動(dòng)記錄:GG2014會(huì)自己主動(dòng)記錄上次打開的主界面的位置、大小;最后一次打開的聊天窗口的大小;最后一次設(shè)定的字體的顏色、大小等。
8.打開聊天窗口時(shí)。自己主動(dòng)顯示上次交談的最后一句話。(能夠通過系統(tǒng)設(shè)置來關(guān)閉該功能)
? ? ?廢話不多說。還是先上圖。
聊天記錄:
好友分組:
正在輸入:
系統(tǒng)設(shè)置:
二.實(shí)現(xiàn)思路
盡管提供了源代碼,可是,我還是想將基本的思路列一下,這樣。大家理解起源代碼來,會(huì)節(jié)省很多其它的時(shí)間。
1. 聊天記錄的本地存儲(chǔ)採(cǎi)用的是Sqlite數(shù)據(jù)庫(kù)。服務(wù)端存儲(chǔ)眼下是在內(nèi)存中虛擬的數(shù)據(jù)庫(kù)。
2. 從server讀取聊天記錄,使用的是Remoting技術(shù)。
IRemotingService 接口的GetChatRecordPage方法以及GetGroupChatRecordPage方法。
3. 好友分組的背后原理:User類的Friends字段,其值是相似這種 -- ?我的好友:10000,10001,1234;家人:1200,1201;同學(xué):1300,1301
(1)通過分號(hào)區(qū)隔不同的分組
(2)通過冒號(hào)區(qū)隔分組名稱與好友列表。
(3)通過逗號(hào)區(qū)隔不同的好友ID。
(4)另外,User類還有個(gè)DefaultFriendCatalog字段,這個(gè)用來存儲(chǔ)默認(rèn)分組的名稱(初始值為”我的好友“),默認(rèn)分組的名稱能夠被改變,可是不能被刪除。(這一點(diǎn)也是全然模仿QQ的)
4. 托盤閃動(dòng)的實(shí)現(xiàn)主要集中于TwinkleNotifyIcon組件,不管是個(gè)人聊天消息還是組聊天消息,首先被push進(jìn)TwinkleNotifyIcon,使其閃爍,當(dāng)點(diǎn)擊TwinkleNotifyIcon,再把消息提取出來顯示。
5. 輸入提醒的背后原理:
(1)當(dāng)檢測(cè)到聊天輸入框的內(nèi)容發(fā)生變化時(shí)(TextChanged事件),就發(fā)送一個(gè)InputingNotify類型的消息給對(duì)方。并控制兩個(gè)該消息的最小間隔為5秒。
(2)對(duì)方一旦收到InputingNotify通知。就馬上顯示”正在輸入“的Label。
(3)假設(shè)對(duì)方連續(xù)10秒都再?zèng)]收到InputingNotify通知,則將將正在輸入的狀態(tài)改為false。(ChatForm的CheckInptingVisiable方法)
(4)當(dāng)對(duì)方接收到聊天消息,馬上將正在輸入的狀態(tài)改為false,然后,再等待下一個(gè)InputingNotify通知。
6.自己主動(dòng)記錄功能,是使用本地文件來記錄窗口的位置信息的,詳見SystemSettings類的ChatFormSize、MainFormSize、MainFormLocation、Font等屬性。
7.打開聊天窗口時(shí)。顯示上次聊天的最后一句話:該功能是利用了User類的Tag字段來存儲(chǔ)最后一句話信息。并且好友信息(User類的實(shí)例)是會(huì)被持久化在本地文件里的。
?
三.GG V4.2 源代碼下載
?下載最新版本號(hào),請(qǐng)轉(zhuǎn)到這里。?
部署說明:
1.當(dāng)前版本號(hào)服務(wù)端默認(rèn)配置為內(nèi)存虛擬數(shù)據(jù)庫(kù)版本號(hào),不須要安裝數(shù)據(jù)庫(kù)。
2.將GG2014.Server目錄復(fù)制到server上,執(zhí)行GG2014.Server.exe。
3.改動(dòng)client配置文件GG2014.exe.config中ServerIP配置項(xiàng)的值為server的IP。
4.執(zhí)行client,注冊(cè)帳號(hào)登錄試用。
5.內(nèi)置測(cè)試帳號(hào)為 10000,10001,10002。10003。10004。password都是 1。?
轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/5038829.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的可以部署在广域网执行QQ高仿版 GG2014 (源代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【开源框架】Android之史上最全最简
- 下一篇: OpenResty 反向代理的用法与技巧