1. 什么是XMPP?

XMPP,全称Extensible Messaging and Presence Protocol (可扩展消息与状态协议), 是一种以XML为基础的开放式即时通信协议。XMPP项目自1998年开始开发,于2000年5月正式发布。

虽然你很可能从未听说过它,但实际上你大概率已经多次使用过它了: 许多游戏的内置聊天系统都是基于XMPP的, 天国的Google Talk也使用了这个通信协议。接下来,我将向你介绍XMPP的优势,以及如何使用它。

2. XMPP的优势在哪?为什么要使用它?

I. 可扩展

正如我们之前所提到的一样,XMPP基于XML,也就是eXtensible Markup Language (可扩展标记语言)。这一特性使得XMPP的可扩展性非常强大, 可以支持大量的插件和附加功能。

举个例子:
我希望每条消息不仅可以包含原本的文本内容,还可以包含一条发送者所在国家的信息。那么,我们就只需要给客户端加入一个插件,使它可以在发送时添加这条信息并在读取时解读它。比如说,Adam想发送一条内容为"Hello"的信息到Betty的账户上,那么:
原来的客户端的信息:

<message from="adam@example.com"/>
<message to="betty@example.com">
<body>Hello</body>
</message>

解读的结果就是Adam发送了一条内容为"Hello"的信息给Betty。
加入了插件之后,信息变成:

<message from="adam@example.com"/>
<message to="betty@example.com">
<body>Hello</body>
</message>
<location type="available" >
<country>CA</country>
</location>

解读的结果是Adam发送了一条内容为"Hello"的信息给Betty; 同时Adam的客户端支持这个插件,他的所在国家是加拿大。

由此可以看出,XMPP可以很简单地进行扩展。这也意味着,这个协议拥有大量的扩展: 在线状态,已读反馈... 这些插件让这个简单的协议变得非常强大。

II. 分布式

XMPP通信网络的结构和电子邮箱很像: 不同的邮箱域名之间可以互相通信,比如说Gmail和Outlook邮箱之间可以互发消息; XMPP也是这样, 比如这里(sedirk.cn)上的XMPP账号也可以与xabber.org上的另一个账号互发消息。因为这种分布式结构的缘故,即使这个网络里的某一个服务器故障了,其它服务器之间的通信也不受影响, 而不会像那些有中央服务器的通信工具(比如QQ, LINE)一样, 整个网络都陷入瘫痪; 同时, 因为每一台服务器都能连接上这个网络, 用户也有大量的XMPP服务提供商可以选择,而不必被限制只能使用一个提供商的服务。这个特点也使得XMPP的另一个重要特性成为现实,那就是它的自由性。

III. 自由与安全

我们之前提到用户可以自由选择XMPP服务提供商, 这意味着只要用户对服务提供商的使用协议不满意,可以随时改用另一家提供商的服务; 不仅如此, 用户还可以自行搭建自己的服务器,从而完全将自己的权利掌握在手中。在商业软件(比如QQ, 微信, LINE)中, 用户则根本没有这种选择的权利: 服务提供商可以随时无理由关停或锁死用户的账号, 或是强行要求用户同意它们的使用条款; 而在XMPP中,则不会有这种情况出现,用户也就可以享有最大程度的自由。

除此之外,XMPP的核心协议和几乎全部的插件都是开放源代码的。这意味着XMPP通讯协议是完全开放透明的, 用户可以自由开发自己的客户端和服务器端程序,而不必被现有的程序所限制。这一特点在各大XMPP客户端应用上都有着体现: 因为有一整个开发者社区进行优化,它们的体积都非常小,通常小于100MB, 在运行过程中也只会占用极少量的内存空间; 相比之下, QQ等专有软件则有着动辄500MB的体积, 运行时也会占用大量的内存空间。

此外,在数据隐私方面,XMPP还拥有OpenPGP, OMEMO等端对端加密程序,因此用户也无须担心自己的聊天内容被服务提供商或第三方获得。

3. 那么,我该怎么使用XMPP聊天呢?

I. 注册账户

首先,你需要一个XMPP账户。在之前的介绍中我也提到,你有许多XMPP服务提供商可以选择。不过, 既然你是在这个提供XMPP服务的网站上看到了这篇文章,为什么不直接在这里注册呢? 当然, 其它服务提供商的注册方式也都与这里十分相似, 你大可以放心去使用它们提供的服务。

下图为本网站上的XMPP注册页面:
Web Register Page

注册步骤:

  1. 在"Username"中填写你想设置的用户名。
  2. "Name"作为你的昵称使用,可以不填。
  3. 在"Email"中填写你的邮箱地址。这个邮箱将作为你找回密码的渠道使用。可以不填,但如果忘记了密码只能找管理员重置。
  4. 在"Password"中填写你想设置的密码。
  5. 在"Confirm Password"中再次填写你想设置的密码,防止填错。
  6. 点击"Create Account"即可完成创建XMPP账户。现在你就可以开始使用XMPP服务了!

II. 客户端

现在,你应该已经拥有了自己的XMPP账号。下一步,你需要选择一个客户端。
xmpp.org上有大量针对不同平台的客户端推荐, 你大可以自己选择你喜欢的那一个。我个人推荐在Windows, MacOS或GNU/Linux系统里使用Gajim, 在安卓系统里使用Conversations, 在ios中使用Siskin IMMonal
在接下来的教程中,我也将以这两个客户端为例。当然,这个网站也提供一个网页版的客户端,登录方式也很简单,在此不做赘述了。

标签: none

已有 3 条评论

  1. Creepender Creepender

  2. Gajim下载缓慢是什么问题,要挂梯子吗

添加新评论