Jabber管理員手冊(cè)中文版
目錄介紹背景核心功能規(guī)劃Jabber 應(yīng)用系統(tǒng)需求操作系統(tǒng)硬件軟件帶寬DNS端口和防火墻服務(wù)器安裝基本配置配置主機(jī)名文件系統(tǒng)設(shè)置管理功能授予管理權(quán)限察看在線用戶發(fā)送廣播信息企業(yè)內(nèi)部互聯(lián)網(wǎng)設(shè)置禁用“服務(wù)
目錄
介紹
背景
核心功能
規(guī)劃Jabber 應(yīng)用
系統(tǒng)需求
操作系統(tǒng)
硬件
軟件
帶寬
DNS
端口和防火墻
服務(wù)器安裝
基本配置
配置主機(jī)名
文件系統(tǒng)設(shè)置
管理功能
授予管理權(quán)限
察看在線用戶
發(fā)送廣播信息
企業(yè)內(nèi)部互聯(lián)網(wǎng)設(shè)置
禁用“服務(wù)器-服務(wù)器”通訊
禁用注冊(cè)新用戶功能
更新服務(wù)器
NAT 設(shè)置
安全
使用SSL 安全連接
安全認(rèn)證
獲得幫助
報(bào)告漏洞和提供補(bǔ)丁
介紹
這篇文章介紹如何安裝,配置和管理jabberd.
Jabberd 服務(wù)器是最早的基于Jabber 協(xié)議的開(kāi)放源代碼服務(wù)器,是在一個(gè)公司內(nèi)部或公用IM 系統(tǒng)中最流行的Jabber 服務(wù)器。然而,還有很多其他的Jabber 服務(wù)器,包括一些開(kāi)放源代碼項(xiàng)目(參看http://www.jabberstudio.org/)和商業(yè)提供者,如i3connect, Jabber, Inc., Jabcast, and Tipic。作為Jabber 協(xié)議的管理者,Jabber 軟件基金會(huì)(JSF)不會(huì)區(qū)分不同軟件的實(shí)現(xiàn)方式。JSF 注重 的是Jabber 的發(fā)展,和Jabber 技術(shù)的傳播。
強(qiáng)烈推薦Jabberd 相關(guān)支持人員,服務(wù)器管理員訂閱JADMIN 郵件列表。關(guān)于Jabber 的更多信息,請(qǐng)參考Jabber Software Foundation網(wǎng)站。
背景
,Jabber 項(xiàng)目作為自由和開(kāi)放源代碼項(xiàng)目,是由Jeremie Miller在1998年開(kāi)始開(kāi)發(fā)的,并作為其它傳統(tǒng)專有IM 系統(tǒng),像AIM ,ICQ ,MSN 和YAHOO 的替代品 ,1999年在Slashdot 上發(fā)布了第一個(gè)公告。Jabber 項(xiàng)目的核心是jabberd 服務(wù)器,這個(gè)模塊化服務(wù)器是用C 寫(xiě)成,并使用GNU pth線程庫(kù)。 經(jīng)過(guò)一年的開(kāi)發(fā),Jabberd 1.0在2000年5月發(fā)布。2000年10月發(fā)布了1.2版,之后2001年1月發(fā)布1.4版,2001年4月發(fā)布1.4.1版,2002年2月發(fā)布1.4.2版。Jabberd 開(kāi)發(fā)小組正在積極修補(bǔ)1.5開(kāi)發(fā)版,并將最終作為2.0版在2003年的某個(gè)時(shí)候發(fā)布。Jabberd 服務(wù)器完全兼容于Jabber Software Foundation協(xié)議。
核心功能
總體上,Jabber 服務(wù)器運(yùn)行下面這些服務(wù):
允許一個(gè)來(lái)自兼容的客戶端或者服務(wù)器端組件的TCP 連接
管理從客戶端和組件進(jìn)入和發(fā)出的XML 流
分發(fā)核心Jabber 數(shù)據(jù)類型(
為連接的客戶維護(hù)會(huì)話信息(通常是IM 用戶)
如果需要,打開(kāi)和其他服務(wù)器的合法連接,路由信息
為組件儲(chǔ)存信息,尤其是IM 用戶,包括每一個(gè)用戶的聯(lián)系人和一些客戶屬性
附加屬性--像群聊,用戶目錄,和與其他IM 系統(tǒng)(AIM, ICQ, MSN, and Yahoo)交互-- 不是當(dāng)前核心功能的一部分,因此沒(méi)有寫(xiě)進(jìn)這個(gè)HOWTO 。 請(qǐng)察看“Jabber Component HOWTO”進(jìn)一步獲得關(guān)于如何添加這些屬性到你的Jabber 服務(wù)器的信息。
規(guī)劃Jabber 應(yīng)用
在安裝任何軟件以前,尤其是一個(gè)重要的網(wǎng)絡(luò)架構(gòu)組件,像Jabber 服務(wù)器,確定你的需求和規(guī)劃你的應(yīng)用是很重要的。 現(xiàn)在Jabber 服務(wù)器可以被廣泛應(yīng)用于下列環(huán)境中,包括:
小的開(kāi)發(fā)團(tuán)隊(duì)
小型到中型公司的企業(yè)內(nèi)部網(wǎng)
大學(xué)和學(xué)院
基于web 的團(tuán)體
Internet 提供商
大公司的企業(yè)內(nèi)部網(wǎng)
如何使用你的Jabber 服務(wù)器,將毫無(wú)疑問(wèn)的影響你的決定,包括硬件,操作系統(tǒng),帶寬,網(wǎng)絡(luò)
,配置,防火墻,安全,數(shù)據(jù)庫(kù)連接,等等。 你要在開(kāi)始的時(shí)候做出一個(gè)主要的決定,要在什么操作系統(tǒng)下運(yùn)行Jabber 。Jabberd 被設(shè)計(jì)用來(lái)在Linux 和其他多種不同風(fēng)格的Unix (包括AIX, Solaris, HP-UX, BSD, 和 Mac OS X)上運(yùn)行。雖然jabberd 已經(jīng)被移植到到了Windows 上,但是這個(gè)移植版本運(yùn)行的并不好,不提倡使用。 (這篇文章沒(méi)有收錄Windows 的移植版本;要察看詳細(xì)信息,請(qǐng)參考Jabberd Windows HOWTO.)
另外,考慮一下你要提供的服務(wù)的帶寬也是很重要的。需要提供單一的點(diǎn)對(duì)點(diǎn)的系統(tǒng),還是群聊系統(tǒng)?想讓你的用戶和外界傳統(tǒng)的IM 系統(tǒng)通訊嗎?像AIM ,ICQ ,MSN ,YAHOO 。這些服務(wù)不是Jabberd 缺省的一部分,你必須提供組件。 雖然這增加了用戶的使用功能,但也使你的規(guī)劃更復(fù)雜,管理更困難。 (詳細(xì)信息,請(qǐng)參考Jabber Component HOWTO.)
最后,想一想如何把Jabber 集成到已經(jīng)存在的網(wǎng)絡(luò)中。例如,你想每一個(gè)用戶的賬號(hào)使用他們的電子郵件地址或者網(wǎng)絡(luò)登錄名,或者你想用已經(jīng)存在的用戶數(shù)據(jù)庫(kù)(例如,你們公司的LDAP 數(shù)據(jù)庫(kù)) ,而不是缺省的文件系統(tǒng)存貯方法。滿足你的 這些需求,可能會(huì)帶來(lái)更大的復(fù)雜性(詳細(xì)信息,參考即將出爐的Jabberd Database Integration HOWTO.)
系統(tǒng)需求
這一部分HOWTO 定義系統(tǒng)需求。
操作系統(tǒng)
雖然Jabberd 主要是GNU/Linux下開(kāi)發(fā)的,但是他已經(jīng)在不同的操作系統(tǒng)下測(cè)試過(guò)了。 1.4.2版可以運(yùn)行在以下系統(tǒng)中:
AIX
FreeBSD
HP-UX
IRIX
Linux
Mac OS X
NetBSD
OpenBSD
Solaris 2.6, 7, 8
上面列出的系統(tǒng)不像Linux 使用得那么廣泛,所以安裝的時(shí)候可能會(huì)遇到一些麻煩。特殊的需求和說(shuō)明,在這篇文章中會(huì)標(biāo)出。通常,非GUN Unix系統(tǒng)需要GNU make,而不是你自己系統(tǒng)里的make 。當(dāng)你在非GNU 系統(tǒng)上運(yùn)行Jabberd 時(shí),GNU make將會(huì)解決你的大部分問(wèn)題,.
,注意: 這篇文章沒(méi)有講關(guān)于Windows 版的jabberd 1.4.2。請(qǐng)參考Jabberd Windows Guide察看詳細(xì)信息。
硬件
硬件需求決定于你所預(yù)期的用戶數(shù)。 以作者的經(jīng)驗(yàn),大多數(shù)jabberd 都是用在像導(dǎo)航項(xiàng)目,內(nèi)部網(wǎng)站,開(kāi)發(fā)平臺(tái),等等這些上面,大約100到1000人。 由于同時(shí)在線的人數(shù)不會(huì)超過(guò)50(例如,jabber.org 的服務(wù)器通常只有2的用戶在線) ,我們可以適當(dāng)?shù)脑u(píng)估出大概會(huì)有500人同時(shí)在線。 對(duì)于這種情況,硬件需求是最小的:也許一個(gè)奔騰級(jí)的工作站加512M 內(nèi)存就夠了。
如果客戶端數(shù)量巨大,那需要做一些調(diào)整。做過(guò)一個(gè)試驗(yàn),jabberd 服務(wù)器可以達(dá)到10,000個(gè)用戶同時(shí)在線,它是被設(shè)計(jì)用來(lái)從概念上證明,一臺(tái)非工業(yè)級(jí)的服務(wù)器也可以提供非常大數(shù)量的服務(wù)。 例如,根據(jù)你所使用的操作系統(tǒng),你可能需要修改OS 級(jí)別的設(shè)置來(lái)限制同一個(gè)IP 的同時(shí)連接數(shù)量,或者操作系統(tǒng)的file descriptor. (對(duì)于Linux ,缺省是限制到1024 file descriptors,這些可以通過(guò)proc 設(shè)置) 。 由于大量用戶的情況在通常的規(guī)劃之外,我不再討論他們,但是我也希望在下一個(gè)修訂版中添加更多關(guān)于可縮放服務(wù)器的信息。
軟件
Jabberd 需要下列軟件:
GNU pth v1.4.0。請(qǐng)注意,GNU pth 1.4.1與jabberd 1.4.2是不不兼容的,所以如果 你的系統(tǒng)里已經(jīng)安裝了pth 1.4.1,請(qǐng)先刪除它,然后安裝pth 1.4.0!如果你的系統(tǒng)里沒(méi)有安裝GNU pth,jabberd 安裝程序會(huì)自動(dòng)安裝它 。
GNU make。GNU make是GNU/Linux操作系統(tǒng)標(biāo)準(zhǔn)的一部分,但是在非GNU 系統(tǒng)中,像FreeBSD 和Solaris 中必須單獨(dú)安裝。不像GNU pth,你必須自己安裝GNU make(jabberd不會(huì)為你安裝它) 。
OpenSSL 。這是可選的。如果你想讓你的客戶使用SSL 連接,你必須在安裝jabberd 1.4.2以前安裝它。
帶寬
通常情況下,一個(gè)Jabber 客戶端連接需要大概15字節(jié)/秒。這意味著1000個(gè)用戶將會(huì)消耗15kbs 的帶寬,10000個(gè)用戶將會(huì)消耗150kbs 的帶寬, 依次類推。注意,這是指同時(shí)在線的用戶數(shù),不是注冊(cè)的用戶數(shù)(當(dāng)前用戶數(shù)取決于你自己的規(guī)劃,但是一般對(duì)于ISP 只有少于5的用戶同時(shí)在線,而在企業(yè)中只有少于50的用戶同時(shí)在線。請(qǐng) 以此為參考。
DNS
像下面描述的那樣,也許你想用全稱域名(FQDN)來(lái)運(yùn)行jabberd 服務(wù)器。這不是在每種情況下都是必需的,但是如果你想和其他jabber 服務(wù)器通訊,或者 你想讓局域網(wǎng)以外的用戶訪問(wèn)服務(wù)器,那服務(wù)器的主機(jī)名(hostname)必須是一個(gè)全稱域名(fully-qualified domain name)。這同樣適用于你想用jabberd 服務(wù)器提供 相關(guān)服務(wù)的子域(例如,一個(gè)Jabber 用戶的目錄或會(huì)議服務(wù)) 。因此你必須要求系統(tǒng)管理員在DNS 域名表中添加你的主機(jī)名和相關(guān)的子域。
端口和防火墻
,IANA 規(guī)定了Jabber 使用的兩個(gè)端口:一個(gè)用于“客戶-服務(wù)器”通訊(端口5222) ,另一個(gè)用于“服務(wù)器-服務(wù)器”通訊(端口5269) 。 如果想讓jabber 客戶端能夠和服務(wù)器通訊,必須保證TCP 5222端口是開(kāi)著的。 如果想讓Jabber 服務(wù)器能夠向其他jabber 服務(wù)器發(fā)送消息,必須保證TCP 5269端口是開(kāi)著的。另外,如果需要為其他IM 系統(tǒng)安裝網(wǎng)關(guān),需要打開(kāi)指定的與其他系統(tǒng)通訊的端口。請(qǐng)參考README 或者其他文檔來(lái)確定所要安裝的網(wǎng)關(guān)軟件需要打開(kāi)的端口(例如,MSN 的網(wǎng)關(guān)端口1863是) 。
一些Jabber 服務(wù)器在公司內(nèi)部網(wǎng)或者防火墻內(nèi)使用,如果不想和組織外部的Jabber 服務(wù)器通訊,你當(dāng)然不想打開(kāi)這些端口。 在其他情況下(例如,公司有遠(yuǎn)程雇員) ,可以打開(kāi)標(biāo)準(zhǔn)jabber 客戶端端口5222(或者5223端口來(lái)使用SSL 連接) ,這樣防火墻之外的用戶也可以和服務(wù)器通訊了。另外,如果想讓用戶和外部服務(wù)器用戶通訊,需要打開(kāi)標(biāo)準(zhǔn)jabber 服務(wù)器端口5269來(lái)實(shí)現(xiàn)“服務(wù)器-服務(wù)器”的通訊。一種更復(fù)雜的配置是一個(gè)服務(wù)器在防火墻內(nèi)部供內(nèi)部用戶使用,一個(gè)服務(wù)器在DMZ 區(qū)供外部用戶使用, 通過(guò)5269端口在兩個(gè)服務(wù)器之間建立“服務(wù)器-服務(wù)器”的信任通道(通過(guò)在防火墻的“控制列表”中只打開(kāi)這兩個(gè)服務(wù)器之間的5269端口通訊).
如果在Jabber 服務(wù)器和任何用戶之間有防火墻,請(qǐng)保證防火墻和jabber 服務(wù)器之間的超時(shí)設(shè)置是恰當(dāng)?shù)?,這是很重要的,尤其在用戶使用TCP 5222端口連接到服務(wù)器的時(shí)候。因?yàn)楫?dāng)用戶打開(kāi)一個(gè)會(huì)話的時(shí)候,要保證TCP 端口是一直開(kāi)著的,為了優(yōu)化HTTP 設(shè)置的防火墻超時(shí)設(shè)置可能過(guò)早的斷開(kāi)Jabber 用戶的連接。
服務(wù)器安裝
1.4.2版可以從http://jabberd.jabberstudio.org/downloads/下載。這個(gè)路徑包括其他平臺(tái)的安裝包(Solaris包,RPM 包,deb 包等等) 。注意,這 些包只包括核心jabberd 服務(wù)器 -- 附加組件在其他地方 (參考Jabber Component Admin Guide)。
因?yàn)橐恍┕芾韱T在安裝這些包的時(shí)候遇到一些問(wèn)題,所以我們推薦使用源代碼包安裝。你只需要下載這個(gè)文件http://jabberd.jabberstudio.org/downloads/jabber-1.4.2.tar.gz。然后按照下面的 步驟安裝:
把文件保存到/tmp/ (或者任何你選擇的目錄) 。
創(chuàng)建一個(gè)目錄,作為你想安裝jabber 的路徑/path/to/jabber/(通常使用/usr/local/jabber/)。注意:你可能需要作為root 用戶 登錄才能創(chuàng)建這個(gè)目錄
輸入 mv /tmp/jabber-1.4.2.tar.gz /path/to/jabber/
輸入 cd /path/to/jabber/
輸入 gzip -d jabber-1.4.2.tar.gz
輸入 tar -xvf jabber-1.4.2.tar (這會(huì)解壓到j(luò)abber-1.4.2/目錄,包括各種文件和子目錄)
輸入 cd jabber-1.4.2/
,輸入 ./configure
安全提示
如果想讓客戶使用SSL 連接,需要重新編譯:./configure --enable-ssl (注意,如果不是從源代碼安裝的,那就不能在SSL 模式下運(yùn)行) 。
輸入 make
操作系統(tǒng)提示
如果正在運(yùn)行Solaris 或其他非GNU 系統(tǒng),請(qǐng)保證使用GNU make編譯,而不是原有的make 。必須輸入gmake ,而不是make 。
Jabberd 1.4.2應(yīng)該已經(jīng)安裝到你的機(jī)器上了。如果安裝過(guò)程中遇到什么困難,請(qǐng)發(fā)送消息到 JADMIN mailing list,描述你的問(wèn)題。包括操作系統(tǒng),相關(guān)軟件版本等完整的信息。
測(cè)試#1
好,該測(cè)試jabber 是不是安裝到你的機(jī)器上,并能正常運(yùn)行了。我們不是測(cè)試所有的功能,只是看看安裝是否成功。為了測(cè)試,按照下面的步驟做:
輸入 cd /path/to/jabber/ (你安裝jabber 的路徑)
輸入 ls -l jabberd/jabberd 察看jabber 守護(hù)進(jìn)程的權(quán)限。輸出類似于:
-rwxr-xr-x 1 user group 675892 Feb 25 2002 jabberd/jabberd
輸入 ./jabberd/jabberd 來(lái)啟動(dòng)jabber 守護(hù)進(jìn)程。這將用缺省的主機(jī)名“l(fā)ocalhost”運(yùn)行jabber 服務(wù)。你應(yīng)該看到 下面一行輸出:
20020923T02:50:26: [notice] (-internal): initializing server
注意
如果在啟動(dòng)服務(wù)的時(shí)候,看到錯(cuò)誤信息"Configuration parsing using jabber.xml failed",有兩種原因?qū)е逻@個(gè)錯(cuò)誤。第一個(gè)原因是指定的 配置文件不存在;解決的辦法是輸入 ./jabberd/jabberd -c /path/to/jabber.xml 來(lái)指定配置文件的全路徑。 另一個(gè)原因是雖然這個(gè)文件存在,但是包含錯(cuò)誤的XML 代碼;解決辦法是修復(fù)XML 文件(例如,粘貼整個(gè)jabber.xml 代碼到xml.com 網(wǎng)站的XML 語(yǔ)法檢查器) 。
輸入 telnet localhost 5222 連接到服務(wù)器,可以看到下面的信息:
Trying 127.0.0.1...
Connected to your-machine-name.
Escape character is '^]'.
現(xiàn)在打開(kāi)XML 流,粘貼下面的XML 代碼到telnet 窗口:
,to='localhost' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>; 會(huì)立刻收到回復(fù): ; 祝賀你!你的jabber 服務(wù)器已經(jīng)能正常工作了。 關(guān)閉XML 流,粘貼下面的XML 代碼到telnet 窗口:
殺死進(jìn)程,或者只是簡(jiǎn)單的在控制臺(tái)窗口輸入^C來(lái)停止服務(wù)。
基本配置
現(xiàn)在Jabberd 已經(jīng)正確安裝并能在你的機(jī)器上運(yùn)行了。現(xiàn)在,我們將通過(guò)下面兩步來(lái)檢驗(yàn)服務(wù)器的即時(shí)消息功能:
配置服務(wù)器的主機(jī)名(hostname)。
為XML 存貯設(shè)置存貯目錄(spool)。
這兩步在下面詳細(xì)討論。一旦你完成了這兩步,我們將通過(guò)另一個(gè)測(cè)試程序驗(yàn)證你所作的是否正確。
配置主機(jī)名(hostname )
你可以通過(guò)編輯jabber.xml 文件改變你的配置,這個(gè)文件在/path/to/jabber/目錄下。jabber.xml 文件包含詳細(xì)的描述,幫助你明白每一個(gè)選項(xiàng)的作用。然而我們現(xiàn)在所要做的只是改變主機(jī)名。打開(kāi)jabber.xml 文件, 做如下編輯:
現(xiàn)在需要決定用什么樣的主機(jī)名??梢杂邢旅孢@些選擇:
繼續(xù)使用“l(fā)ocalhost”不變。如果只是為了開(kāi)發(fā)目的,這沒(méi)有什么問(wèn)題。但是不能從除了這臺(tái)機(jī)器以外,其他任何機(jī)器上連接到這臺(tái)服務(wù)器。
改為這臺(tái)機(jī)器的IP 地址。這在局域網(wǎng)里能很好的運(yùn)行。但這也是不提倡的,尤其是需要連接到其他jabber 服務(wù)器,或者運(yùn)行附加組件。
改為全稱域名(FQDN)。這是更可取的做法,因?yàn)檫@樣jabber 能更好的運(yùn)行 -- 尤其是運(yùn)行附加組
,件或者和其他jabber 服務(wù)器連接。(“服務(wù)器-服務(wù)器”的通訊使用一種叫做“回叫”(dialback)的功能,來(lái)保證不被欺騙?!盎亟小?dialback)協(xié)議依賴DNS , 所以如果主機(jī)名不使用FQDN ,將不能和其他Jabber 服務(wù)器通訊) 。盡可能使用FQDN ,例如,jabber.mycompany.com.
要配置Jabber 服務(wù)器的主機(jī)名,只需要簡(jiǎn)單的把'localhost' 改為'jabber.mycompany.com' 或者任何想用的名字。然后保存jabber.xml 文件。
文件系統(tǒng)設(shè)置
像上面提到那樣,Jabber 的一個(gè)核心功能是存儲(chǔ)用戶相關(guān)的的信息。這包括用戶的認(rèn)證信息(用戶名和密碼) 和聯(lián)系列表(在jabber 中叫roster ,名冊(cè)的意思) ;有時(shí)候這些信息也包括用戶的vCard 和不同的客戶屬性。缺省這些信息存 放在/path/to/jabber/spool/的一個(gè)子目錄中,目錄名相對(duì)應(yīng)上面設(shè)置的主機(jī)名。所以,如果配置jabber.xml ,用主機(jī)名jabber.mycompany.com 運(yùn)行服務(wù),那你必須創(chuàng)建一個(gè)/path/to/jabber/spool/jabber.mycompany.com/目錄。另外,這個(gè)目錄對(duì)于運(yùn)行jabberd 進(jìn)程的用戶必須是可寫(xiě)的。一旦完成了這些設(shè)置,Jabberd 會(huì)在這個(gè)目錄為每一個(gè)注冊(cè)用戶保存一個(gè)與用戶同名的XML 文件(類似?username.xml?)。
好了,現(xiàn)在開(kāi)始測(cè)試這些基本配置。
測(cè)試#2
因?yàn)橐呀?jīng)配置了主機(jī)名(建議使用FQDN) ,而且配置了XML 存儲(chǔ),現(xiàn)在可以做一些在測(cè)試#1中不能做的測(cè)試:(1) 從另一個(gè)機(jī)器連接上來(lái);(2)注冊(cè)一個(gè)賬號(hào);(3)給另一個(gè)用戶發(fā)送消息。
為了測(cè)試,仍然telnet 到客戶端,這樣你就明白XML 是怎么向服務(wù)器發(fā)送消息的。
在/path/to/jabber/目錄中,輸入 ./jabberd/jabberd -D來(lái)啟動(dòng)Jabber 守護(hù)進(jìn)程調(diào)試模式。你將會(huì)看到很多調(diào)試信息在屏幕上滾過(guò)。
注意
現(xiàn)在已經(jīng)配置了主機(jī)名使用FQDN ,可能會(huì)收到一條錯(cuò)誤信息"jabberd is unable to listen on ports 5222 and 5269"。為了糾正這個(gè)錯(cuò)誤,需要配置服務(wù)器綁定一個(gè)指定的IP 地址。首先,在jabber.xml 文件
在這臺(tái)機(jī)器上打開(kāi)一個(gè)終端,輸入telnet 主機(jī)名 5222,這里' 主機(jī)名' 是指在jabber.xml 文件中的主機(jī)名(建議使用FQDN) 。你將再一次看到:
Trying 127.0.0.1...
Connected to your-machine-name.
Escape character is '^]'.
通過(guò)粘貼下面的XML 代碼段到telnet 窗口,來(lái)打開(kāi)一個(gè)XML 數(shù)據(jù)流:
to='yourhostname' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>; 應(yīng)該馬上從服務(wù)器收到回復(fù): ; 發(fā)送下面的XML 代碼來(lái)看看需要為注冊(cè)用戶提供什么信息: ; 應(yīng)該收到下面的回復(fù),告訴你要注冊(cè)一個(gè)用戶需要提供名字,email 地址,帳號(hào),和密碼。 Choose a username and password to register with this server. ; ; ; 接下來(lái)發(fā)送注冊(cè)信息到服務(wù)器: ; ; 如果一切順利,將會(huì)收到下面的XML 代碼表示注冊(cè)成功: 如果spool 存儲(chǔ)目錄設(shè)置得不正確,將會(huì)收到下面的XML 代碼: 同樣的,如果賬戶已經(jīng)存在,會(huì)收到下面的XML 代碼: 現(xiàn)在已經(jīng)注冊(cè)了一個(gè)賬號(hào),可以登錄了。首先,問(wèn)一下服務(wù)器登錄需要什么信息: ; ; 服務(wù)器會(huì)回答需要哪些認(rèn)證信息: ; ; 可以選擇"password" (明文密碼) 或"digest" (加密密碼) ;為了方便,我們選擇明文密碼。還必須為這個(gè)連接指定"resource" (資源)。發(fā)送下面的XML 代碼: ; ; 服務(wù)器會(huì)發(fā)送信息,確認(rèn)認(rèn)證成功: 最后,發(fā)送'presence' 信息,讓服務(wù)器知道你已經(jīng)在線并準(zhǔn)備接收消息: