《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于XMPP的即時通信網關應用研究

基于XMPP的即時通信網關應用研究

2008-07-16
作者:樊燕紅1, 譚 香2

??? 摘 要: XMPP最終要實現不同即時通信" title="即時通信">即時通信系統間的互通。主要介紹對XMPP與其他IM互連互通的網關原理及其應用進行的研究討論,并以jabber系統與MSN Messenger進行互發信息作為實例進行詳細闡述。
??? 關鍵詞: 即時通信(IM)? XMPP網關? 網絡通訊

?

??? 隨著互聯網的普及,即時通信軟件" title="通信軟件">通信軟件IM(Instant Messaging)成為當前Internet上非常普及的通信工具,它從根本上改變了人們的傳統通信方式。但是目前主流的IM產品都不能直接互通信息,IM成為網絡通信方式的瓶頸,如:微軟的MSN、Yahoo的雅虎通、ICQ以及騰訊公司的QQ等,它們所采用的相關標準和協議不統一,是造成瓶頸的原因。
??? 目前即時通信的相關標準主要有IBM公司和微軟公司聯合提出的SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)和互聯網工程任務組IETF(The Internet Engineering Task Force)提出的可擴展的消息傳遞和出席協議XMPP(the eXtensible Messaging and Presence Protocol)。
1 基于XMPP的IM架構
??? XMPP是在XML基礎上開發的用于即時通信的協議,于2004年被IETF批準為Internet標準。XMPP不局限于網絡拓撲結構,但是網絡通信必須采用TCP協議,它的典型應用是基于C/S結構的系統[1]。
??? 基于XMPP的IM在結構上由三個部分組成:XML流(XML Stream)、流認證(Stream authentication)、 XML節(XML Stanza)。XML流為通信雙方之間采用異步方式進行數據傳輸提供標準的方法,在整個XMPP通信過程中處于最外層,用以控制系統正常的通信。流認證采用SASL(Simple Authentication and Security Layer)和回撥(Dialback)協議完成通信認證,是XMPP安全機制的重要組成部分。XML節為通信雙方進行真正的內容交換提供通信框架,是實際需要交換的信息所在處。
2 基于網關實現IM互聯互通
?? 基于XMPP的IM通過網關與其他協議IM實現通信。XMPP的網關(Gateway)在服務端" title="服務端">服務端提供一種有特殊目的的服務,主要功能是把XMPP即時消息翻譯成使用非XMPP的即時通信協議格式,同時把返回的數據翻譯回XMPP,例如電子郵件(Email)、在線聊天系統(IRC)、SIMPLE、短消息(SMS)以及現在流行的即時通信軟件,如AIM、ICQ、MSN、Yahoo等。XMPP網關原理圖如圖1所示。

??????????????????????
??? 圖1顯示,XMPP服務端之間可以直接進行通信,而XMPP與其他IM進行互通時,在XMPP服務端與其他IM服務端之間就需要相應IM的網關來進行協議的翻譯,并且不同的外部IM需要不同網關完成協議翻譯功能。
3 XMPP網關的工作原理" title="工作原理">工作原理
??? 以與MSN Messengers進行互連互通為例說明XMPP網關的工作原理。MSN Messenger是微軟公司推出的當前很流行的即時通信軟件,它的協議建立在TCP/IP之上。除了文件傳輸和語音聊天是直接的“點對點”通信之外,其他所有的情況都是通過服務器進行。在邏輯上,一共有三種類型的服務器,各司其職:
??? (1)派遣服務器DS(Dispatch Server):客戶端" title="客戶端">客戶端最初連接的服務器,負責給客戶端分配合適的通知服務器。域名是messenger.hotmail.com,標準服務端口是1863。完成派遣任務后,切斷TCP連接。
??? (2)通知服務器NS(Notification Server):客戶端需要一直保持連接的服務器。很多任務要在這個會話內完成,包括登錄、改變狀態、獲取用戶列表、修改用戶信息、發起聊天、接收呼叫、郵件通知、退出等。服務端口通常也是1863,由派遣服務器指定。
??? (3)接線服務器SB(Switchboard Server):客戶端之間聊天使用的中轉服務器。每開一個聊天窗口,客戶端和服務器就建立一個TCP會話。當客戶端之間需要進行文件傳輸或語音聊天時,即發送系統消息,建立“點對點”會話通道(可能轉為使用UDP)。服務端口通常也是1863?!包c對點”通信使用的端口由客戶端自動協商決定,如文件傳輸通常使用6891端口[2]。
MSN Messenger命令使用純ASCII碼,對非ASCII碼字符使用URL編碼。
??? 現在XMPP的軟件主要是各類Jabber IM。實現Jabber賬號與MSN賬號的關聯如下:
??? (1)使用Jabber客戶端Exodus軟件建立一個jabber賬號:phoenix@jabber.com.cn;使用MSN Messengers建立MSN賬號girl88@hotmail.com,昵稱Beauty。
??? (2)為girl88@hotmail.com加入一個好友boy88@hotmail.com(昵稱Handsome),使得這兩個MSN賬號用戶互為好友。
??? (3)使用Exodus賬號phoenix@jabber.com.cn登錄到服務器jabber.com.cn,并且把賬號girl88@hotmail.com注冊到jabber MSN網關服務器。
??? 在MSN 賬號boy88@hotmail.com登錄后,就可以在Jabber客戶端的好友列表中看到多了一個好友boy88%hotmail.com@ msn.jabber.com.cn,原boy88@hotmail.com變成了boy88%hotmail.com(為了不與Jabber賬號中的@混淆,原MSN賬號中的@改為%),并且在后面加上了jabber服務器的地址。
??? 下面以Jabber系統與MSN Messenger之間互發消息的過程說明XMPP網關的工作原理。
3.1 Jabber客戶端向MSN好友發出一次chat的請求
??? 當Jabber客戶端想和一個MSN的好友聊天時,首先需要按如下格式發送請求給Jabber服務端:
???
????
Jabber服務端接收到該請求后,網關按照MSN的通信協議轉發該請求給MSN的服務器(NS)。首先發送命令字“XFR TrID SB”給MSN的服務器(NS),在收到MSN服務器返回的相同命令字的命令: XFR TrID SB 64.4.13.88:1863 CKI1989487642.2070896604后,從中獲取MSN服務器分配給這次Chat的接線服務器(SB)的地址和端口,然后再重新連接到該SB服務器上[3]。
??? 在連接上SB服務器之后,網關將向此SB服務器發送以下命令:USR 1 girl88@hotmail.com 989487642.2070896604,如果所發送的這個CKI雜列正確,SB服務器將返回USR 1 OK girl88@hotmail.com Beauty。以上操作完成之后,接下來這個用戶要做的就是要把另一個用戶“叫到”此聊天session中。這可以通過發送下面的命令完成CAL 2 boy88@hotmail.com,此時服務器將會向此用戶回應一個session號,同時也會將此session號發送給另一個用戶。
??? 如果另一個用戶準備好聊天并做出回應,SB服務器將發送如下命令: JOI boy88@hotmail.com Handsome。這條命令表示另一個用戶加入了聊天當中,通信雙方之間就建立起一個chat通道,相互之間可以互發消息了。
3.2 MSN好友向Jabber客戶端發出一次chat的請求
??? MSN好友boy88@hotmail.com并不知道girl88@hotmail.com已經注冊到了Jabber的網關服務,仍正常地向girl88@hotmail.com發送一次chat的請求,而MSN服務器(NS)已把MSN格式信息發送到了Jabber服務端,此時網關首先接收到該請求(MSN通信協議中命令字為RNG的命令,格式為“RNG SessionID SwitchboardServerAddress CKI AuthchallengeInfo CallingUserHandle CallingUser FriendlyName”),如:RNG 11742066 64.4.13.74:1863 CKI 989495494.750408580 boy88@hotmail.com Handsome。從該命令行中獲取SB服務器的地址和端口以及CKI雜列和發起聊天方的用戶名和昵稱,然后Gateway方連接到該SB服務器上,并發送命令“ANS TrID LocalUserHandle AuthResponseInfo SessionID”。其中,LocalUserHandle為C端用戶,AuthResponseInfo和SessionID的值均要與收到的RNG命令中的值一致。如:ANS 1 girl88@hotmail.com 989495494.750408580 11742066。當接收到SB服務器發送的命令字為IRO 1 1 1 girl88@hotmail.com beauty 和ANS 1 OK的命令時,通信雙方就可以互發消息了。
3.3 Jabber客戶端MSN好友互發消息過程
??? 不管是Jabber客戶端先發出chat請求還是先接收chat請求,一旦與MSN服務器為該次chat分配的SB服務器之間建立了通信通道,Jabber客戶端和他的MSN好友之間就可以收發消息了。
??? (1)Jabber客戶端向MSN好友boy88@hotmail.com發XML數據流信息,在Jabber客戶端看到的好友賬號是boy88%? hotmail.com@msn.jabber.com.cn
?? ???
????
信息被Jabber服務端接后,網關轉換為MSN的信息格式再發送到MSN服務端:
??? MSG 2 N 153
??? MIME-Version: 1.0
??? Content-Type: text/plain; charset=UTF-8
??? X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif;
????????? EF=; CO=0; CS=0; PF=22
??? Where are you, boy88?
其中,2是測試號,每發送一次信息,此號就會隨著增加;153是指所發送信息的長度。在上面的例子中就是頭信息和所發送的信息“Where are you, boy88?”的長度。
??? (2)當MSN客戶端賬號boy88@hotmail.com向他的好友girl88@hotmail.com按MSN格式發信息時,如:
????MSG girl88@hotmail.com beauty 149
??? MIME-Version: 1.0
??? Content-Type: text/plain; charset=UTF-8
??? X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif;
??????????? EF=; CO=0; CS=0; PF=22
??? I am from Sichuan.
??? Jabber服務端接收到MSN格式的信息后,網關需要把這些信息轉化為Jabber客戶端識別的XML數據流,并且發送目標girl88@hotmail.com改為phoenix@jabber.com.cn,如下:

??? ??
????
Jabber客戶端從接收到的XML流獲取收到的即時信息:I am from Sichuan。
??? 即時通信越來越流行,應用范圍越來越大,但因各類主流IM軟件相互間不能直接互通信息,必然會影響人際間信息的交流。作為即時通信服務的協議標準,基于XML的XMPP提供一個網關服務,通過在服務端與非XMPP的信息進行相互翻譯,在一定程度上解決了這個問題,實現了各類不同IM軟件的互通,為不同架構的即時通信系統進行通信提供了一種方式。
參考文獻
[1]?ANDRE P S. Extensible messaging and presence protocol(XMPP): core. RFC3920,.[S]. Internet Engineering Task?Force,2004.
[2]?MSN Messenger協議[EB/OL].http://www.cnitblog.com/tcpip2005/articles/879.html,2005-04-16.
[3]?黃昶,張燕,沈建國.即時消息傳遞系統的智能代理[J].計算機應用研究,2004,(6):256-257,260.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美电影电视剧在线观看| 欧美精品福利在线| 国产丝袜一区二区三区| 亚洲日本成人| 午夜精品短视频| 蜜桃精品一区二区三区| 国产精品久久国产愉拍| 国产精品99久久久久久人| 久久国产66| 国产精品豆花视频| 欧美影院一区| 老司机免费视频久久| 欧美另类一区二区三区| 国产精品亚洲综合久久| 亚洲最快最全在线视频| 国产精品高潮呻吟久久av无限| 国产亚洲一级高清| 国产亚洲亚洲| 久久久久久夜精品精品免费| 亚洲免费在线播放| 国产午夜精品久久久久久久| 欧美成人精品激情在线观看| 9久re热视频在线精品| 国内精品久久久久久| 亚洲视屏在线播放| 在线观看亚洲精品视频| 国产一区二区在线免费观看| 欧美日韩国产成人在线91| 亚洲精选久久| 午夜欧美不卡精品aaaaa| 国产麻豆精品久久一二三| 亚洲人午夜精品免费| 性色av一区二区三区在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩精品免费观看视频完整| 制服丝袜激情欧洲亚洲| 欧美日韩高清在线观看| 国产一区二区精品久久91| 欧美亚洲一区二区在线| 午夜精品一区二区三区在线播放| 国产欧美视频在线观看| 亚洲图片欧洲图片日韩av| 午夜精品久久久久久久99樱桃| 国产色产综合产在线视频| 影音先锋中文字幕一区| 国产精品视频男人的天堂| 欧美高清在线播放| 国产一区二区中文| 欧美午夜寂寞影院| 久久人人爽人人爽爽久久| 国产精品腿扒开做爽爽爽挤奶网站| 一区二区亚洲| 在线成人中文字幕| 免费日韩精品中文字幕视频在线| 国产日本欧美视频| 国产精品ⅴa在线观看h| 中文有码久久| 韩国一区二区三区在线观看| 99精品黄色片免费大全| 欧美片在线播放| 在线一区欧美| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧美中文日韩v在线观看| 一区二区av| 欧美日韩国产精品专区| 亚洲高清在线| 美女国内精品自产拍在线播放| 性色av一区二区怡红| 国产精品家教| 欧美高清视频www夜色资源网| 久久精品二区亚洲w码| 欧美激情一区二区三区高清视频| 亚洲乱码视频| 欧美与欧洲交xxxx免费观看| 久久免费一区| 亚洲一区二区三区四区五区午夜| 欧美+日本+国产+在线a∨观看| 亚洲欧洲三级电影| 亚洲精品美女久久7777777| 开元免费观看欧美电视剧网站| 欧美亚洲在线| 久久久中精品2020中文| 欧美视频四区| 99国产麻豆精品| 国产精品女同互慰在线看| 欧美大片18| 亚洲免费大片| 欧美日韩日日骚| 开心色5月久久精品| 欧美视频二区36p| 久久久久看片| 亚洲人成人一区二区在线观看| 亚洲精品极品| 日韩午夜在线观看视频| 久久精品在这里| 欧美高清一区二区| 欧美91视频| 欧美视频1区| 亚洲午夜精品在线| 亚洲高清在线精品| 在线观看日产精品| 欧美精品色一区二区三区| 99国产精品99久久久久久粉嫩| 久久国产精品毛片| 日韩亚洲欧美综合| 国产精品成人观看视频国产奇米| 国产精品影片在线观看| 欧美日韩综合一区| 亚洲伊人色欲综合网| 免费观看在线综合色| 美女主播视频一区| 国产自产2019最新不卡| 激情综合在线| 久久人人九九| 亚洲国产精品第一区二区三区| 中文亚洲视频在线| 欧美日韩国产综合网| 午夜精品视频| 国产精品香蕉在线观看| 一二三区精品福利视频| 欧美日韩一区二区三区免费看| 欧美高清在线| 亚洲精品视频中文字幕| 在线欧美电影| 亚洲第一主播视频| 久久综合电影| 欧美日韩国产系列| 国产亚洲aⅴaaaaaa毛片| 国产精品久久久久aaaa樱花| 国产精品久久久久久久一区探花| 欧美三级视频在线| 亚洲欧美日韩另类精品一区二区三区| 欧美日韩在线视频一区二区| 欧美网站在线观看| 国产伦精品一区二区三区四区免费| 国产一区观看| 欧美日本一区二区高清播放视频| 99在线精品视频在线观看| 亚洲一区精彩视频| 欧美一区三区三区高中清蜜桃| 亚洲综合电影一区二区三区| 欧美精品99| 亚洲一区二区高清视频| 亚洲精品欧洲精品| 亚洲欧美中文日韩v在线观看| 亚洲欧美综合另类中字| 伊人久久噜噜噜躁狠狠躁| 欧美自拍偷拍午夜视频| 在线欧美不卡| 香蕉免费一区二区三区在线观看| 六月丁香综合| 欧美性猛交一区二区三区精品| 国产精品女人网站| 国产日韩欧美不卡| 欧美国产一区视频在线观看| 欧美日韩免费区域视频在线观看| 亚洲欧美韩国| 国产麻豆视频精品| 亚洲一区二区三区免费在线观看| 午夜精品国产精品大乳美女| 久久久99久久精品女同性| 国产日韩欧美成人| 亚洲视频在线观看| 欧美波霸影院| 国产精品午夜春色av| 男人天堂欧美日韩| 亚洲国产高清在线观看视频| 亚洲欧美变态国产另类| 亚洲全黄一级网站| 欧美精品久久99久久在免费线| 国产精品99久久久久久宅男| 亚洲二区在线视频| 欧美性理论片在线观看片免费| 久久久久国产精品人| 国产精品sss| 欧美日韩精品一区二区| 国产精品日韩久久久| 91久久久国产精品| 亚洲福利视频一区| 国产一区日韩一区| 欧美专区在线观看一区| 国产农村妇女毛片精品久久麻豆| 午夜精品久久久久久久久久久| 国产日韩专区| 亚洲伦理自拍| 欧美电影资源| 久久久久久成人| 亚洲欧美日韩综合一区| 久久精品中文| 伊人婷婷欧美激情| 久久先锋影音| 一区二区在线不卡| 亚洲一区二区成人| 国产综合18久久久久久| 国产精品高潮呻吟久久av黑人| 国产一区二区三区高清| 每日更新成人在线视频| 久久婷婷国产麻豆91天堂| 国产精品黄色在线观看| 欧美日韩成人免费| 久久久久一本一区二区青青蜜月| 亚洲激情网站免费观看| 亚洲国产日韩欧美在线图片| 在线观看欧美视频| 久久偷窥视频| 国产精品国产三级国产普通话三级| 国内精品久久久久影院 日本资源| 国产日韩欧美在线| 国产日本欧美一区二区三区在线| 亚洲国产精品悠悠久久琪琪| 国产精品久久久一本精品| 欧美成人精品在线观看| 欧美激情1区| 亚洲三级视频| 亚洲国产日韩综合一区| 激情综合在线| 正在播放欧美一区| 国产日韩欧美一区二区| 欧美成在线观看| 西瓜成人精品人成网站| 欧美日韩系列| 欧美激情视频给我| 欧美午夜视频在线| 欧美亚州一区二区三区| 国内精品久久久| 亚洲在线观看| 免费观看日韩| 国产综合色产在线精品| 香蕉av福利精品导航| 欧美日韩国产成人在线91| 影音先锋成人资源站| 日韩视频一区二区三区在线播放免费观看| 亚洲第一黄色| 久久成人综合视频| 久久福利一区| 久久爱91午夜羞羞| 国产精品一区久久久| 国产欧美日韩麻豆91| 欧美喷水视频| aaa亚洲精品一二三区| 国产精品狠色婷| 一色屋精品视频在线看| 欧美日韩一区成人| 欧美大片免费观看| 欧美午夜a级限制福利片| 国内免费精品永久在线视频| 在线欧美日韩精品| 影音先锋中文字幕一区| 欧美大片va欧美在线播放| 亚洲欧美大片| 午夜精品成人在线| 亚洲激情在线观看视频免费| 亚洲一区二区三区精品在线观看| 亚洲精品欧美日韩| 亚洲二区三区四区| 亚欧成人精品| 欧美另类69精品久久久久9999| 欧美激情第二页| 在线观看视频亚洲| 久久综合给合久久狠狠色| 欧美一二三区在线观看| 亚洲美女少妇无套啪啪呻吟| 91久久在线观看| 欧美一级片久久久久久久| 国产一区二区三区在线免费观看| 亚洲精选大片| 午夜精彩视频在线观看不卡| 在线天堂一区av电影| 欧美福利影院| 国产美女精品视频免费观看| 国产日韩高清一区二区三区在线| 久久久久久亚洲精品杨幂换脸| 国产视频自拍一区| 欧美一级二级三级蜜桃| 久久久久久久性| 欧美午夜视频一区二区| 亚洲激情精品| 国产精品二区在线观看| 亚洲国产高清自拍| 国产精品综合不卡av| 韩国av一区二区三区| 欧美日韩在线播放| 欧美一区二区三区四区夜夜大片| 国内视频精品| 国产精品露脸自拍| 一区二区三区在线观看国产| 欧美一区二区三区久久精品茉莉花| 欧美视频四区| 久久精品亚洲精品| 久久夜色精品国产| 亚洲精品一区二区三区婷婷月| 亚洲综合欧美日韩| 亚洲国产清纯| 久久久蜜臀国产一区二区| 狠狠色丁香久久综合频道| 欧美日韩视频不卡| 一区二区在线看| 国产一区二区三区无遮挡| 国产精品国产精品国产专区不蜜| 亚洲三级视频| 欧美一区中文字幕| 91久久精品国产91性色| 欧美另类极品videosbest最新版本| 国产欧美一区二区三区在线看蜜臀| 亚洲手机在线| 国产婷婷色一区二区三区在线| 狠狠综合久久av一区二区小说| 欧美成人国产va精品日本一级| 99精品欧美一区二区蜜桃免费| 99riav国产精品| 国产精品久久久久久久久搜平片| 亚洲欧美另类久久久精品2019| 亚洲欧美一区二区原创| 一区二区三区精品视频| 国产精品一国产精品k频道56| 国产一区二区福利| 亚洲欧美视频在线观看视频| 欧美国产激情二区三区| 日韩午夜在线电影| 亚洲午夜精品一区二区| 美女久久网站| 久久成人免费| 欧美国产1区2区| 一区二区三区波多野结衣在线观看| 欧美另类视频| 亚洲欧美日韩另类| 一本色道**综合亚洲精品蜜桃冫| 日韩写真视频在线观看|