可在廣域網部署運行的QQ高仿版 -- GG2014 完美版!新增支持:聊天記錄、好友分組、托盤閃動消息提醒、登陸狀態、GIF動態表情 可在廣域網部署運行的QQ高仿版 -- GG2013概要

  距上次GG V3.7版本(可在廣域網部署運行的QQ高仿版 -- GG嘰嘰V3.7,優化視頻聊天、控制更多相關細節)的發佈,已經有50天了,這50天對於GG來講,是一個重大的飛躍。由於這段時間經過一些基於GG的實戰項目,發現了GG的不少bug和不足之處,我都一一作了修正,並增長了一些基礎且必須的功能。此次發佈的是GG V4.0版本,又稱爲GG 2014。html

  記得在GG早期版本時,園子裏的吉日兄跟我留言說:"GG徹底不能正式使用......",那時我還不是很服氣,後來當我基於GG開發正式項目時,才逐漸明白吉日兄說的是對的。可是,今天,我能夠邀請吉日兄再來試試GG的最新版本了,由於如今GG的品質是過硬的。不信嗎?下載個試試唄!數據庫

      想要直接下載體驗的朋友請點擊:「下載中心」服務器

一.GG V4.0 新增功能展示 

1.聊天記錄:支持本地保存和服務器端保存兩種方式。post

2.好友分組:新增/刪除分組,修改分組名稱,改變好友的所屬分組。測試

3.托盤閃動:跟QQ徹底同樣,當接收到消息時,托盤會閃動對應好友的頭像。點擊頭像,將彈出與好友的聊天框。字體

4.登陸狀態:在線、離開、忙碌、勿打擾、隱身。當修改本身的狀態時,好友能同步看到本身的最新狀態。優化

5.動態表情:聊天框支持插入GIF圖片、動態表情,並播放動畫。動畫

6.輸入提醒:像QQ同樣,當對方正在輸入消息時,我這邊的聊天框能夠看到對方「正在輸入」的提示。url

7.自動記錄:GG2014會自動記錄上次打開的主界面的位置、大小;最後一次打開的聊天窗口的大小;最後一次設定的字體的顏色、大小等。spa

8.打開聊天窗口時,自動顯示上次交談的最後一句話。(能夠經過系統設置來關閉該功能)

     廢話很少說,仍是先上圖。

  聊天記錄:

  

  好友分組:

  

  正在輸入:

  

  系統設置:

  

二.實現思路

  雖然提供了源代碼,可是,我仍是想將主要的思路列一下,這樣,你們理解起源碼來,會節省更多的時間。

1. 聊天記錄的本地存儲採用的是Sqlite數據庫,服務端存儲目前是在內存中虛擬的數據庫。

2. 從服務器讀取聊天記錄,使用的是Remoting技術。IRemotingService 接口的GetChatRecordPage方法以及GetGroupChatRecordPage方法。

3. 好友分組的背後原理:User類的Friends字段,其值是相似這樣的 --  個人好友:10000,10001,1234;家人:1200,1201;同窗:1300,1301

(1)經過分號區隔不一樣的分組

(2)經過冒號區隔分組名稱與好友列表。

(3)經過逗號區隔不一樣的好友ID。

(4)另外,User類還有個DefaultFriendCatalog字段,這個用來存儲默認分組的名稱(初始值爲」個人好友「),默認分組的名稱能夠被改變,可是不能被刪除。(這一點也是徹底模仿QQ的) 

4. 托盤閃動的實現主要集中於TwinkleNotifyIcon組件,不管是我的聊天消息仍是組聊天消息,首先被push進TwinkleNotifyIcon,使其閃爍,當點擊TwinkleNotifyIcon,再把消息提取出來顯示。

5. 輸入提醒的背後原理:

(1)當檢測到聊天輸入框的內容發生變化時(TextChanged事件),就發送一個InputingNotify類型的消息給對方,並控制兩個該消息的最小間隔爲5秒。

(2)對方一旦收到InputingNotify通知,就當即顯示」正在輸入「的Label。

(3)若是對方連續10秒都再沒收到InputingNotify通知,則將將正在輸入的狀態改成false。(ChatForm的CheckInptingVisiable方法)

(4)當對方接收到聊天消息,當即將正在輸入的狀態改成false,而後,再等待下一個InputingNotify通知。

6.自動記錄功能,是使用本地文件來記錄窗體的位置信息的,詳見SystemSettings類的ChatFormSize、MainFormSize、MainFormLocation、Font等屬性。

7.打開聊天窗體時,顯示上次聊天的最後一句話:該功能是利用了User類的Tag字段來存儲最後一句話信息。並且好友信息(User類的實例)是會被持久化在本地文件中的。

 

三.GG V4.0 源碼下載

  下載最新版本,請轉到這裏。 

  內置測試賬號:10000、1000一、1000二、10003 ,密碼:1

 

關於GG的最新全貌介紹、以及如何部署、試用賬號等問題,我單獨寫了一篇文章,做爲彙總,可參見 可在廣域網部署運行的QQ高仿版 -- GG2013概要。 

歡迎和我探討關於GG2013的一切,個人QQ:2027224508,多多交流!  

你們有什麼問題和建議,能夠留言,也能夠發送email到我郵箱:ggim2013@163.com。 

若是你以爲還不錯,請粉我,順便再頂一下啊,呵呵  

相關文章
相關標籤/搜索