现在要开始学习Jabberd的相关东西,后续需要用他来部署服务器。废话不多少,现在开始:
首先明确几个问题或者说概念:
1.xmpp和jabberd是什么关系
xmpp最初是jabberd社区为了开发jabberd服务器而开发的,只是后来,jabberd社区对xmpp做了修改和强化,使他能够适用于IETF的即时消息和出席信息技术,并且在2004年10月正式成为了标准,分别是RFC3920和RFC3921,但是,现在RFC3920和RFC3921分别被RFC6120和RFC6121取代了。
2.什么是JID?
JID就是Jabberd id,是你在XMPP世界里面的唯一标示,组成部分就是像是一个邮箱地址一样,比如hezhouyong@gmail.com.
3.XMPP的大体通信流程
XMPP虽然是为即时通信而生的,但是他的通信流程却和邮件的很相似,因为XMPP不支持P2P的通信方式(传输文件除外),而是必须要经过服务器。下面举例说明一下(例子来源于http://hi.baidu.com/qbg_elingqishi/item/0ed8fa3102579d85f5e4ada0):
Juliet与Romeo的通话:Juliet 并不能过点对点直接把信息发给Romeo,而要通过服务器转发。Juliet的账号在某一台Jabber服务器上,现在假设他用Juliet在名为capulet.com的服务器上注册了账号,那么他的账号就是Juliet@capulet.com,同样Romeo也在另一个服务器上得到了如下一个JID:Romeo@montague.net,一旦Juliet登录了capulet.com的服务器,他就可以发送消息给好友了。现在假设以Juliet在一台计算机上打开了客户端,我们来更精确描述一下过程:
(1)Juliet发送信息给Romeo@montague.net。
(2)信息首先被capulet.com处理。
(3)如果还没有连接的话,capulet.tom开启到montague.net的服务之间的连接。
(4)如果montague.net允许capulet.com的连接,capulet.com的信息就被转发到montague.net上面。
(5)montague.net的服务器看到这个信息是发送给它上面的Romeo的用户,如果Romeo在线,这个信息就被转发到Romeo的客户端上,否则被保存在服务器上。
(6)这个信息在Romeo的客户端上被显示了出来。