Posts Tagged ‘XMPP’

Posted by Rei at 16 五月 2010

分类目录: 技术

标签:

7. XMPP 优缺点总结

经过实际编写了 XMPP 客户端 QTalk,我对 XMPP 的优缺点有了更深的认识。XMPP的优点和缺点均源自其开放性,其中对 XMPP 缺点的思考,可以解释为何目前 XMPP 应用功能过于单一,多用在轻量级的通信服务中。充分认识 XMPP 的缺点,有助于以后设计开发比 XMPP 更好的即时通信协议。

7.1 优点

XMPP 采取完全开放、可扩展的发展策略,是能成为跨越商业机构 (Google,Facebook 等) 的即时通信协议的重要保障。

7.1.1 完全开放

XMPP 完全开放,不受任何一家商业公司控制,其他商业公司或组织才能放心使用,不必害怕有一天某家公司将 XMPP 协议封闭。

7.1.2 可扩展

XMPP 采用 XML 作为数据传输的格式,是四大开放即时通讯协议 (其他三个为:IMPP、PRIM、SIP ) 中最灵活的。使用 XMPP 的公司或组织才能按需定制自己所需的功能。不少公司利用 XMPP 开发了即时聊天以外的应用,例如微博始祖 Twitter.com 在2006年上线过一个 XMPP 机器人 (twitter@twitter.com) [16],用户可以经绑定后使用任何 XMPP 帐号添加其为好友,在聊天窗口内向 Twitter.com 发表微博信息 (现在该功能已下线)。 (全文…)

Posted by Rei at 15 五月 2010

分类目录: 技术

标签:,

6. QTalk 客户端的设计

在此,将我编写的 xmpp 客户端命名为 QTalk ( Qt + Gtalk)。

(blog 特有内容: 开源了,放在 http://github.com/chloerei/qtalk)

由于选择了 Gtalk 服务器作为服务端,qxmpp 库作为程序的 XMPP 的通信模块,所以 QTalk 编写的主要工作在于功能与用户界面的实现。

QTalk 的预期功能如下:

  • GTalk 帐号登录
  • 列出联系人名单,获取联系人 VCard 资料、状态信息
  • 向已有联系人收发纯文本消息
  • 向已有联系人收发文件
  • 增删联系人
  • 人性化设置

QTalk 的运行截图见附录 一。

6.1 QTalk 结构

QTalk 的结构可分为通信模块和用户界面两大块,层次结构如图四所示: (全文…)

Posted by Rei at 14 五月 2010

分类目录: 技术

标签:, ,

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] (全文…)