介紹XMPP以前,先來看看GTalk。html
GTalk是Google推出的IM(Instant Messaging,即時通信)軟件,相似於QQ和MSN。android
從技術角度來講,GTalk與QQ和MSN的差別是使用了不一樣的通信協議,QQ使用了本身的私有協議(未公開),MSN也使用了本身的私有協議。而GTalk使用了XMPP(Extensible Messageing and Presence Protocol,可擴展消息與存在協議),這種通信協議是一種公開的協議,有不少IM都使用了XMPP。sql
XMPP是一種基於XML的協議,它繼承了XML的靈活性和可擴展性。所以,基於XMPP的應用也一樣具備超強的靈活性和可擴展性。數據庫
隨着Internet技術的高速發展,即時通訊已經成爲一種普遍使用的通訊方式。tomcat
1996年Mirabilis公司推出了世界上第一個即時通訊系統ICQ,不到10年間,即時通訊(Instant Messaging,簡稱IM)以發展成爲了最流行的網絡應用之一。安全
特別是近幾年的迅速發展,即時通訊的功能日益豐富,再也不是個單純的聊天工具,它已經發展成集交流、資訊、娛樂、音樂、電視、遊戲、電子商務等爲一體的綜合化信息平臺。服務器
目前國內外及時通訊軟件IM(Instant Messenger )形勢風起雲涌,可謂戰況空前,IM做爲繼Email和Web以後最主要的互聯網基礎應用之一,爲商家必爭之地。網絡
國內的形勢因爲QQ的壟斷性優點明顯,表面稍顯平靜,實則暗流涌動。架構
目前來看,胖企鵝公司以壓倒性優點佔據了國內IM市場近八成份額,而且牢牢抓住低端市場,用戶數量龐大,盈利豐厚。其餘的IM 微軟MSN(WLM)、網易POPO、新浪UC、TOM Skype、Google Gtalk等佔有率較爲慘烈,還有雅虎即時通、AIM、ICQ以及傳聞中的Baidu IM和搜狐搜Q以及一些目前並不出名的如校內網的校內通,Lava-lava等等等等,凡在國內叫得上號的叫不上號的互聯網企業,幾乎沒有不推IM的,甚 至連中國移動都力推飛信,但願分得一杯羹。併發
然而這些即時通信不能實現互聯互通,限制了用戶的擴展。
雖然如今即時通訊軟件有不少,可是它們之間不能互聯互通也阻礙了及時通訊用戶的繼續擴展。
所以,在現階段的各類即時通訊服務,沒有統一的標準,沒法實現互聯互通,而XMPP(Extensible Message and presence Protocol)協議的出現,實現了整個及時通訊服務協議的互通。
有了這個協議以後,使用任何一個組織或者我的提供的即便通訊服務,都可以無障礙的與其餘的及時通訊服務的用戶進行交流。例如google 公司2005年推出的Google talk就是一款基於XMPP協議的即便通訊軟件。
目前IM即時通訊有四種協議:
這代表XMPP是可擴展的,因此XMPP信息不只能夠是簡單的文本,並且能夠攜帶複雜的數據和各類格式的文件,也就是說XMPP協議不只能夠用在人與人之間的交流,並且能夠實現軟件與軟件或軟件與人之間的交流,目前支持XMPP協議的即時通信工具備Gtalk、FaceBook IM、Twitter、網易POPO等等通信工具,具備很是好的發展情景。
正如任何事物都有其自身的發展規律同樣,技術和產品的進步也有其自身的規律。
從萌芽到混亂最終標準化,這是互聯網產品的基本規律。
IM跟其實發展自Email,跟Email有着不少共同點。對比一下Email目前的狀況,或許會有些啓示。
Email如今已經被普遍應用,誰都不能質疑其互聯網第二應用的地位(第一應用是Web)。
Email之因此能普遍地被應用最關鍵的緣由應該是Email有一套開放標準的協議規範(包括SMTP、POP、IMAP 等),任何人均可以基於這些協議規範開放本身的Email產品,無論是Email服務器也好,Email收發客戶端也罷仍是如今頗爲流行的Web形式的 Email界面,它們都是基於同一套標準。
在這套標準的框架下,各個Email相關廠商都各自佔據產業鏈的相應位置,相互合做相互競爭,這纔是一個百花齊放的健康競爭環境,並且這種健康競爭最終受益者仍是廣大用戶。
XMPP的基礎部分已經在2002-2004年獲得了互聯網工程任務組(IETF)的批准, 這意味着XMPP在未來就像咱們認爲理所固然的Internet協議TCP/IP、HTTP、FTP、SMTP、POP同樣成爲Internet標準;這意味着之後咱們就像使用Web、使用Email和使用FTP同樣開放地使用IM。
甚至若干年後人們會理所固然地認爲163的郵箱能夠給Hotmail發郵件同樣,QQ用戶也能夠添加Gtalk用戶,人們會逐漸忘卻當年軍閥割據紛亂的歷史。這是一種革命性的進步!不支持XMPP的IM將會像IBM的 Token-Ring同樣孤芳自賞或者像DEC NET協議同樣被人遺忘。想當年DEC NET和IBM Token-Ring也是多麼意氣風發羽扇綸巾啊!
在XMPP被批准以前,世界上已經存在了數十種支持XMPP的服務器端和客戶端以及數百萬用戶。嗅覺靈敏的Google做爲開放源代碼社區和開放標準的最大受益者,第一時間感覺到了這種趨勢,因此花重金將Gaim的做者挖去Google,因而就有了基於XMPP的Gtalk。
開放的標準協議會致使產品的競爭更爲健康和良性,整個產業鏈更爲完善。固然產品之間的競爭惟一的趨勢就是同質化,產品發展到後期比拼的只有服務。這一點在傳統產業已經被徹底驗證,互聯網產業也不能逃脫。至於到時用戶是選Gtalk呢仍是選POPO呢,就像用戶如今選Gmail仍是163的郵箱同樣,能夠各有所好。
不過IM在擴展功能以及增值服務上還有很是大的競爭餘地。
XMPP是一種基於XML的協議,它繼承了在XML環境中靈活的發展性。
所以,基於XMPP的應用具備超強的可擴展性。通過擴展之後的XMPP能夠經過發送擴展的信息來處理用戶的需求,以及在XMPP的頂端創建如內容發佈系統和基於地址的服務等應用程序。並且,XMPP包含了針對服務器端的軟件協議,使之能與另外一個進行通話,這使得開發者更容易創建客戶應用程序或給一個配好系統添加功能。
可擴展消息處理現場協議(eXtensible Messaging and Presence Protocol , XMPP) 是一種基於可擴展標記語言(eXtensible Markup Language, XML)的近端串流式即時通訊協議。它將現場和上下文敏感信息標記嵌入到XML 結構化數據中, 使得人與人之間、應用系統之間以及人與應用系統之間能即時相互通訊。
XMPP 協議已被批准爲互聯網即時通訊協議標準。
XMPP中定義了三個角色,客戶端,服務器,網關。
基本的網絡形式是單客戶端經過TCP/IP鏈接到單服務器,而後在之上傳輸XML。
XMPP的特色是將複雜性從客戶端轉移到服務器端。
這使得客戶端編寫變得很是容易,更新系統功能也一樣變得容易。
vCard是一種現存的、普遍使用的,用戶我的信息存儲的標準,有點像是電子名片。
基礎的功能是存儲和獲取用戶的電子身份,該信息是用XML表示的,數據的存儲取決於全部現存的Jabber服務器的實現。
客戶機/服務器通訊模式、分佈式網絡、簡單的客戶端、XML的數據格式。
Openfire 採用Java開發,開源的實時協做(RTC)服務器基於XMPP(Jabber)協議。您可使用它輕易的構建高效率的即時通訊服務器.
Openfire安裝和使用都很是簡單,並利用Web進行管理。單臺服務器可支持上萬併發用戶。
因爲是採用開放的XMPP協議,您可使用各類支持XMPP協議的IM客戶端軟件登錄服務.
JDK1.6 + Openfire For Windows + Mysql5.5 + Tomcat6
JDK1.6 + Openfire For Linux + Mysql5.5 + Tomcat6
下載官網的JDk,而且正常安裝,待安裝完成後設置環境變量。
下載Openfire,並正常默認安裝。
下載安裝Mysql,指定Mysql的用戶名和密碼,以及數據庫使用的編碼。肯定是否容許遠程訪問該數據庫。
下載Apach基金會下的Tomcat服務器,而且解壓安裝。
登錄Openfire服務器控制檯,設置相關的信息。如:端口,插件等。
並將項目部署到Apach tomcat中。
點擊運行
ForAndroid、ForPc、ForWeb 都提供了個服務器地址設置的地方。默認Openfire的端口爲5222.(除,Silverlight 的端口必須爲 4502-4532)
能夠在服務器端直接註冊用戶,也能夠在客戶端註冊用戶。
相對應的即時通信方面的操做。
環境搭建請參考:http://www.cnblogs.com/charley_yang/archive/2011/03/27/1997052.html
http://baike.baidu.com/link?url=uPBLWsmv5AL8jWF3vQ4Hhcif-YkhMZB0xfxNfWA56Vgdig0bI9gQudZUICpWkDJb
http://www.cnblogs.com/charley_yang/category/277938.html
http://www.cnblogs.com/luxiaofeng54/archive/2011/03/14/1984026.html