天天看點

基于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;

聊天曆史記錄:查詢;

檔案傳輸:線上與離線檔案傳輸;

界面風格:吸引使用者的首要因素。

上一篇: k8s的部署

繼續閱讀