XMPP 实践一 Qt 和 qxmpp 库

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] More

女王控

7 Comments

一直以来就想写一篇日志完整的描述我眼里的女王控。什么是女王?怎么样才能评定为女王?我的标准也许跟大多数人不一样。不过有什么关系呢,一千个人眼中有一千个女王,我不在意别人的看法。

女王不是SM

首先要划清女王和 SM 的关系。虽然 SM 里面很常见的一个角色就是 SM 女王,但是这跟我这里说的女王完全不是一类人。很奇怪的是,有一次我跟一人说起“女王”这个话题,他问到:“皮鞭真的有那么爽吗?”不是的,我对 SM 完全没有兴趣。撇开 SM 不说,皮鞭跟女王也是一点关系都没有。MF 里的谢丽尔,虽然拥有歌姬称号,并且皮鞭皮靴一应俱全,但是跟我的女王定义相差太远,只能算是御姐。

到底什么样的女性才算是我心中的女王?接着往下……

皇室血统

血统,很多时候就是血统一下区分开了女王和御姐,只有拥有皇室血统的女性我才会称之为女王。

血统很多时候会对故事剧情有微妙的影响。当女王去到一个陌生的地方“战斗”的时候,通常未开战前就会某冒出来一群人:“阿!你不是XXX殿下?请务必让我们助你一臂之力。”而一个御姐去到一个陌生的地方“战斗”,通常要打打副本,用实力征服当地武装,然后才会有人:“事已至此,让我们助你一臂之力吧。”这其中的差别就是:前一种让我看的爽点。 More

XMPP 协议笔记 三 扩展

No Comments

4. XMPP 扩展

XMPP 的核心部分是一个轻量级的协议,不足以满足一般即时聊天应用的需求。 XMPP 的社区在核心协议的基础上定义了众多的扩展协议,用以实现电子名片、二进制传输等功能。

4.1 通过 vcard-temp 获取电子名片

电子名片 (个人资料) 是聊天程序中常见的功能。通过电子名片,用户可以查看联系人除了 JID 地址外的其他信息,如:昵称,全名,个人网站 URL 等。

XMPP 的扩展之一 [XEP-0054] vcard-temp [9] 实现了电子名片。要在聊天程序中支持电子名片,需要客户端和服务端都实现 vcard-temp 扩展。知名的 XMPP 服务器大都支持 vcard-temp 扩展,如 jabber.org, gtalk 等。

4.1.1 请求电子名片

vcard-temp 扩展规定的电子名片访问规则如下:

客户端:

<iq from='stpeter@jabber.org/roundabout'
    id='v3'
    to='jer@jabber.org'
    type='get'>
    <vCard xmlns='vcard-temp'/>
</iq>

该查询使用 get 类型的 Iq 包请求 jabber.org 服务器返回 jer 用户的 vcard 数据。 More

Older Entries Newer Entries