基于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;
聊天历史记录:查询;
文件传输:在线与离线文件传输;
界面风格:吸引用户的首要因素。

你可能感兴趣的:(基于QT的IM(jabber)库和客户端)