基於QT的IM(jabber)庫和客戶端

本文來自http://blog.csdn.net/cymlife 原創,引用必須註明出處!

 

基於QT的IM(jabber)庫和客戶端

這段時間一直在研究跨平臺的IM(jabber)客戶端,經過大量的下載、編譯、測試、評估,作此記錄。

使用QT作爲表現層,源於QT提供了豐富的控件,以及強大的跨平臺能力。jabber是一個基於XMPP協議的IM應用,解決了做什麼和怎麼做的問題。

使用QT來開發的jabber xmpp庫,主要是依據XMPP協議,和jabber服務器進行交互,在IM系統中起到通信協議層的作用。xmpp的客戶端,必須要實現XMPP RFC3920(XMPP CORE,最新規範爲RFC 6120)和RFC3921(XMPP IM,最新規範爲RFC 6121),以及其他輔助的XMPP Extensions協議。

jabber xmpp庫
1. gloox
   http://camaya.net/gloox/
   純C++的跨平臺實現,全功能,易於使用。不過自1.0之後就沒有更新了。

2. qxmpp
   http://code.google.com/p/qxmpp/
   純QT實現,易於使用。目前版本是0.3,一直在更新。
   qxmpp實現了很多XMPP Extensions協議,比如文件傳輸,vcard,avatar等功能。

3. jreen
   http://gitorious.org/jreen
   純QT實現,易於使用。一直在更新。

4. psi(libiris)
   http://psi-im.org/
   psi從0.14版本之後就沒有更新了。
  
5. psi-dev
   http://code.google.com/p/psi-dev/
   一羣熱心的開發人員繼續對psi進行維護和升級,目前版本是0.15。

6. libpurple
   http://pidgin.im/download/
   支持多種IM的協議庫,最新版本是2.9.0。

jabber xmpp QT-IM客戶端
1. vacuum-im
   http://code.google.com/p/vacuum-im/
   純QT實現,易於使用。目前版本是1.1,一直在更新。
   vacuum實現了很多XMPP Extensions協議,比如文件傳輸,vcard,avatar,組聊等功能;採用插件方式,易於擴展。

2. qutecom
   http://trac.qutecom.org/
   qutecom的IM庫採用libpurple,集成了sip電話的功能。最新穩定版是2.2.1,開發版是3.0 alpha。
   qutecom使用了大量的開源庫,包括:boost,ffmpeg,libosip2等等,編譯過程複雜,編譯速度極慢。

3. qutim
   http://qutim.org/
   qutim是支持多協議、跨平臺(包括mobile)的IM,其中jabber協議使用jreen。系統採用插件功能,易於擴展。

4. kadu
   http://www.kadu.net/w/English:Main_Page
   kadu支持的IM協議包括Gadu-Gadu和jabber(使用libiris),程序結構清晰,界面友好,易於使用。

5. jabbin
   http://sourceforge.net/projects/jabbin/
   jabbin的IM協議使用libiris,使用libjingle庫提供語音功能。jabbin的代碼還使用了很多QT3的功能,有點老舊,因爲QT5都快出來了。

6. kopete
   http://kopete.kde.org/
   kopete是KDE平臺支持多協議的IM,其中jabber協議使用libiris。從0.50.80之後就是打打補丁而已。
  
IM客戶端功能
   一個完整的IM客戶端,功能還是很複雜的,基本包括:
通訊協議層:和IM服務器交互;
用戶管理:組織機構(分組,企業通訊錄),名片管理(vcard),頭像顯示(avatar),用戶狀態,用戶查找等;
文字聊天功能:聊天方式包括海聊,組聊,私聊;表情管理;貼圖功能;拼寫檢查;聊天風格;
音視頻聊天功能:使用google的webrtc;
聊天曆史記錄:查詢;
文件傳輸:在線與離線文件傳輸;
界面風格:吸引用戶的首要因素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章