XMPP 实践一 Qt 和 qxmpp 库
五 14
技术 Qt, XMPP, 编程 4 Comments
5. 选择用于编写 XMPP 客户端的工具
为了深入了解 XMPP 是否足够用于开发一个开放、功能丰富的即时聊天工具,我决定写一个 XMPP 的客户端聊天程序。服务端直接连接 Google Talk 服务器。客户端编程基于 C++/Qt 和 qxmpp 库。最终程序将可以使用 Gtalk 帐号登录,并与其他 Gtalk 用户通信。
用于编写 XMPP 客户端的工具如下:
- Google Talk 服务器
- Qt 编程框架和工具链
- qxmpp 程序库
5.1 Google Talk (Gtalk) 服务器的优势
Google Talk 是 Google 公司于2005年8月24日推出的一款IP 电话及即时通讯的服务。Google Talk 使用开放的 XMPP 协议。得益于 XMPP 的开放性,使用 Google Talk 服务不一定要通过官方客户端。Google Talk用户端仅支持 Windows (2000、XP、Server 2003、7)。[13]
实际上从 Gtalk 发布开始,XMPP 才真正走入大众的视野。以 Google 公司为后盾,Gtalk 的服务器拥有安全和稳定的口碑。
此次编程实践不涉及服务端的编程,而是遵循 XMPP 协议,让自己编写的客户端与 Gtalk 服务器通信,通过 Gtalk 服务器转发客户端的数据包。不涉及服务端编程,也可以使我专注与客户端的功能和操作性的优化上。
5.2 Qt 编程框架简介
Qt (发音同cute) 是一个跨平台的C++应用程序开发框架,有时又被称为 C++ 部件工具箱。Qt 被用在 KDE 桌面环境、Opera、OPIE、VoxOx、谷歌 Earth、Skype 和 VirtualBox的 开发中。它是诺基亚 (Nokia) 的 Qt Development Frameworks 部门的产品。[14]
Qt 的一个优势是跨平台,使用 Qt 写成的软件经过重新编译后可以运行在 Windows,Linux,Mac 平台上,实现了一次编写,随处编译。并且 Qt 拥有 LGPL 授权的版本,即可以用于编写开源软件,也可以编写闭源商业软件。
Qt 的本地语言是 C++,开发框架内包含了图形、网络、XML等多个方面的组件,使用 Qt 框架可以轻松编写跨平台的软件。
5.3 qxmpp 库简介
qxmpp 是一个基于 Qt 框架编写的 XMPP 通讯库。其开发者有 manjeetdahiya ,jeremy.laine,ian.geiser,项目源码[15]托管在 google code 上。
qxmpp 目前实现了 XMPP 标准中的核心部分 [RFC3920] [RFC3921],以及 [XEP-0054] vcard-temp,[XEP-0096] SI File Transfer,必要时可以扩展功能。qxmpp 仅依赖 Qt 库,不需引入其他第3方的程序库,可使程序构建过程更清晰。
在实践初期,我曾尝试自己编写 XMPP 通讯部分的代码,但发现要遵循 XMPP 文档的定义重写一个通讯库是非常繁琐的事情。为了有效利用时间,着重研究 XMPP 协议在即时聊天上的应用效果,决定不重复发明轮子,选用了轻量级,并且依赖关系少的 qxmpp 库。
[13] http://zh.wikipedia.org/zh-cn/Google_Talk
[14] http://zh.wikipedia.org/zh-cn/Qt
[15] http://code.google.com/p/qxmpp/
RSS
五 14, 2010 @ 19:38:14
嗯 。不错 。搞完论文看看。
八 10, 2010 @ 17:30:40
嗯,我们最近也在用QT和QXMPP编写聊天工具,但由于是刚刚接触,根本就不懂,连QXMPP库都没弄完整。请问能用QT和QXMPP编写Symbian程序嘛。能把你编写的这个聊天工具的代码发给我就更好了。
八 10, 2010 @ 17:32:00
邮箱:411051493@qq.com
八 10, 2010 @ 17:43:55
@jianghu
源码地址
http://github.com/chloerei/qtalk
需要会用git,注意看README
Symbian的SDK在往QT迁移,不知进度如何,以前的Symbian应该不是用Qt开发。