即時通信(1):XMPP簡介及環境搭建

什么是即時通信?

  • 即時通訊(Instant Messaging)是目前Internet上最為流行的通訊方式,各種各樣的即時通訊軟件也層出不窮,服務提供商也提供了越來越豐富的通訊服務功能。

即時通訊的實現方式?

  • 即時通訊有多種實現方式,例如:XMPP、環信、融云等。本文則對XMPP的使用進行介紹。

什么是XMPP?

  • XMPP(XML,Messages,Presence,Protocol)是可擴展通訊和表示協議,基于XML(可擴展標記語言),可用于即時通信(IM)。
  • 目前有四種主流IM(即時通訊)協議:XMPP(可擴展通訊和表示協議)、IMPP(即時信息和空間協議)、PPIM(空間和即時信息協議)、SIMPLE(針對即時通訊和空間平衡擴充的進程開始協議)。在這四種協議中,最靈活的就是XMPP,它是基于XML協議的,繼承了在XML環境中靈活的發展性,因此,基于XMPP的應用程序具有超強的可擴展性。

XMPP優點:

  • 開放:XMPP協議是由JSF開源社區組織開發的,不屬于任何的機構和個人,所以XMPP是自由、開放、公開的,而且易于了解。在客戶端、服務器、組件、源碼庫等方面,都有了多種實現。
  • 標準:互聯網工程工作組將XMPP于2002年正式列為認可的實時通訊及Presence技術。
  • 分布式的網絡架構:XMPP協議雖然是Client/Server的通訊模式,但是XMPP協議本身并沒有這樣的限制。而分布式網絡是由分布在不同地點且具有多個終端的節點機互連而成,網絡中的任意一點均至少與兩條線路相連,當任意一條線路發生故障,通信還可經其他鏈路完成,具有較高的可靠性,同時網絡易于擴充。XMPP網絡架構和電子郵件十分相似,其核心協議通信方式是先創建一個Stream,然后以TCP傳遞XML數據流,沒有中央服務器,任何人都可以運行自己的XMPP服務器,使個人或組織能夠掌握他們的實時通訊體驗。
  • 良好的擴展性:基于XML建立起來的應用具有良好的語義完整性和擴展性。
  • 應用廣泛:XMPP除了可用在即時通信的應用程序,還能用在網絡管理、內容供稿、協同工具、檔案共享、游戲、遠端系統監控等。
  • 安全性:XMPP在Client-to-Server通信和Server-to-Client通信中都使用TLS(Transport Layer Security)協議作為通信通道的加密方法,保證通信的安全。

XMPP實現即時通訊

實現即時通訊至少需要一個服務器端、兩個客戶端。下面我們準備需要的環境:XMPP服務器、XMPP客戶端(輔助調試)

XMPP環境搭建

搭建XMPP環境需要幾個輔助工具:

  • XAMPP
    XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的XAMPP軟件站集成軟件包,是一個易于安裝且包含MySQL、PHP和Perl的Apache發行版,非常容易安裝和使用,只需下載、解壓縮、啟動即可。
XAMPP1
XAMPP2
XAMPP3
XAMPP4
XAMPP5
XAMPP6
  • Openfire
    Openfire采用Java開發,開源的實時協作(RTC)服務器,基于XMPP(Jabber)協議。其安裝和使用都非常簡單,利用Web進行管理。單臺服務器可支持上萬并發用戶。
    因為Openfire服務是基于JAVA語言寫的,所以電腦必須要有java運行環境。安裝JDK成功后進行Openfire的安裝。
Openfire1
Openfire2
Openfire3
Openfire4
Openfire5
Openfire6
Openfire7

此時需要創建數據庫以供使用:


Openfire8
Openfire9

創建數據庫結束,需要導入表,此時要去openfire文件夾中獲取需要的文件,位置如下:


Openfire10
Openfire11
Openfire12
Openfire13
Openfire14
Openfire15
Openfire16
Openfire17
Openfire18
Openfire19
Openfire20
Openfire21
XMPP客戶端環境搭建

搭建XMPP客戶端環境使用spark,輔助調試。XMPP系統的一個設計標準是必須支持簡單的客戶端。事實上,XMPP系統架構對客戶端只有很少的幾個限制。一個XMPP客戶端必須支持的功能有:

  • 通過TCP套接字與XMPP服務器進行通信
  • 解析組織好的XML信息包
  • 理解消息數據類型
spark1
spark2

環境配置結束。

工程中添加XMPP
  • 創建新工程
  • 導入XMPP框架
  • 引入XMPP需要的依賴庫libxml2和libresolv
  • 設置路徑/usr/include/libxml2
導入XMPP
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容