freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

xmpp協(xié)議客戶端的實現(xiàn)-在線瀏覽

2025-01-08 08:09本頁面
  

【正文】 , 否則將影響項目的整體推進 ,也難以迅速應(yīng)對瞬息變化的市場需求。而網(wǎng)絡(luò)出現(xiàn)以后 ,日常溝通有了新的方式。社科院副研究員郭良發(fā)布的《 2020 年中國 5 城市互聯(lián)網(wǎng)使用現(xiàn)狀及影響調(diào)查報告》表明 , 即時消息 類溝通工具在網(wǎng)絡(luò)交流應(yīng)用中的使用比例 , 已經(jīng)超越電子郵件 , 成為當今互聯(lián)網(wǎng)溝通交流的主要工具。 即時消息 系統(tǒng)可以讓員工能夠知道同事是否在線 , 避免了員工在打電話同事上耗費大量時間 , 使同事之間在任何地點、任何時間都能進行即時交流 , 真正實現(xiàn)企 業(yè) 內(nèi)部的協(xié)同工作。雖然 即時消息 系統(tǒng) 在企業(yè)中也得到了廣泛的應(yīng)用 , 但是 許多企業(yè)的員工都在非正式的使用 、 MSN 等 即時消息 軟件。無論是企業(yè)還是政府機關(guān) ,使用個人版的 即時消息 軟件有安全隱患。 目前國內(nèi)外一些大的 即時消息 服務(wù)提供商已 經(jīng)推出了面向企業(yè)用戶的 即時消息 服務(wù) , 但經(jīng)研究發(fā)現(xiàn) , 由于各提供商使用自己專有的通信協(xié)議 , 即時消息 協(xié)議的封閉性 ,互不兼容 , 使得不同的 即時消息 系統(tǒng)之間不能實現(xiàn)互通 , 成為嚴重阻礙 即時消息 發(fā)展的一大障礙 [4]。對用戶而言 , 打破了傳統(tǒng)的 2 即時消息 系統(tǒng)之間無法實現(xiàn)互聯(lián)互通的局面。 XMPP 的出現(xiàn) , 實現(xiàn)了整個 即時消息 服務(wù)協(xié)議的統(tǒng)一。目前 , 即時消息 領(lǐng)域正在掀起一股新的潮流 , 世界最大的搜索引擎公司 google 推出的 google talk 就是一款基于 XMPP 協(xié)議的 即時消息 軟件。另外 , XMPP 已獲得 IETF 的正式認可。 1. 2 本文主要工作 本文主要研究了基于 XMPP 協(xié)議的 即時消息 系統(tǒng) , 對 XMPP 協(xié)議以及 XMPP 框架進行了深入研究。 本文的主要工作包括以下幾個方面 : 在對即時通訊網(wǎng)絡(luò)架構(gòu)進行分析和對比的基礎(chǔ)上 , 系統(tǒng)選取了基于中心目錄服務(wù)器式的 P2P 體系結(jié)構(gòu)。 客戶端通訊協(xié)議的設(shè)計是本文的重點工作之一 , 在遵循 XMPP 協(xié)議的基礎(chǔ)上 , 達到了與服務(wù)器在用戶管理和好友管理方面的互通 , 以及與其它客戶端在即時消息傳送等方面的通訊。 在信息安全方面 , 根據(jù) XMPP 協(xié)議框架對安全認證方面的要求系統(tǒng)設(shè)計時采用了SASL[7](簡單授權(quán)安全 )認證和 TLS(傳輸層安全 )協(xié)議加密 , 有效的保證了通信中數(shù)據(jù)的私有性和完整性 , 降低了通訊數(shù)據(jù)被篡改和監(jiān)聽的可能性。本系統(tǒng)采用了利用服務(wù)器中轉(zhuǎn)的方式進行 NAT 穿越 , 雖然服務(wù)器的負擔會有所加重 , 但是這種方案較好的保證了數(shù)據(jù)傳輸和連接的可靠性。 IM 通過一定的機制使 IM 消息及時地到達接收方一端 , 使交流雙方維持一種實時的交流狀態(tài)。在線服務(wù)是 IM 應(yīng)用中一個非常重要的特征。 其中 , 在線信息包括兩方面的信息 :在線狀態(tài)信息 (online/offline 兩個狀態(tài)標 志 ); 可訪問 (availability)狀態(tài)信息。這種做法在很大程度上避免了在交流中經(jīng)常出現(xiàn)的交流沖突和等待 , 提高了交流的效率。 IM 交流者在等待對方信息到達期間 , 甚至在對方信息到達以后 , 可以先去處理其他事情 , 然后再回復對方的信息。 IM 通過聯(lián)系人列表這樣一個邏輯列表來維護 IM 用戶要聯(lián)系的交流者。 (5)文本交互性。這種形式不僅直觀、便于理解 , 而且和音頻、視頻信息等相比更加便于存儲和日后的查閱。如 消息的信息容量較小且表示風格也很隨意 , 如不注重拼寫錯誤或者隨處可見的縮寫形式等。 (7)隱密與安全性 (privacy and security)。通過這些策略 , IM 用戶可以有效地預防與阻止惡意用戶的騷擾 ,保證正常交流的進行 。企業(yè)家經(jīng)常受益于即時消息傳遞的這個特性 , 他們可以訪問遠程的人們并與他們進行交流 , 即時消息傳遞非常好的滿足了他們的要求。 即時消息 (IM)的原理 即時消息 是建立在 TCP/IP 和 UDP 協(xié)議基礎(chǔ)上的 , 下面將通過 來說明其原理。前者是以數(shù)據(jù)流的形式 , 將傳輸數(shù)據(jù)經(jīng)分割、打包后 , 通過兩臺機器之間建立起的虛電路 , 進行連續(xù)的、雙向的、嚴格保證數(shù)據(jù)正確性的文件傳輸協(xié)議。 當你的機器安裝了 以后 , 實際上 , 你既是服務(wù)端 (Server), 又是客戶端 (Client),如圖 1 所示。當你和你的 伙伴進行聊天時 , 如果你和對方的連接比較穩(wěn)定 , 你和他的聊天內(nèi)容都是以 UDP的形式 , 在計算機之間傳送。 對于 XMPP 來說 , 每一個登陸的用戶與 XMPP 服務(wù)器之間需要建立一個穩(wěn)定的 TCP連接 , 所有從該客戶端發(fā)給另一個客戶端的消息和數(shù)據(jù)都必須通過服務(wù)端。 即時消息 (IM)的幾個協(xié)議 目前 IM 有四種協(xié)議:即時信息和空間協(xié)議 (IMPP)、空間和即時信息協(xié)議 (PRIM)、針對 即時消息 和空間平衡擴充的進程開始協(xié)議 SIP(SIMPLE)以及 XMPP。 用戶 (客戶端 2) 用戶 (客戶端 1) 服務(wù)器 圖 1 即時消息系統(tǒng)模型 5 IMPP 主要定義必要的協(xié)議和數(shù)據(jù)格式 , 用來構(gòu)建一個具有空間接收、發(fā)布能力的即時信息系統(tǒng)。 RFC2778 是一個資料性質(zhì)的草案 , 定義了所有 presence 和 IM 服務(wù)的原理。另外 , 這個草案還就 presence 服務(wù)定義了一些條款 , 如運行的命令、信息的格式 , 以及 presence 服務(wù)器如何把 presence 的狀態(tài)變化通知給客戶。 SIMPLE 和 XMPP 兩個協(xié)議 , 都符合RFC2778 和 RFC2779。 SIP 是 IETF 中為終端制定的協(xié)議。但 SIP 不僅僅能被用在語音中 , 也可以用于視頻。 SIMPLE 在 2020 年夏季得到額外的信任 , 目前 , 微軟和 IBM 都致力于在它們的 即時消息 系統(tǒng)中實現(xiàn)這個協(xié)議。有了進程模式 , SIMPLE 使用 SIP 來建立一次進程 , 再利用 SDP(進程描述協(xié)議 )來實際傳輸 IM 數(shù)據(jù)。這表明 XMPP 是可擴展的。而且 , XMPP 包含了針對服務(wù)器端的軟件協(xié)議 , 使之能與另一個進行通話 , 這使得開發(fā)者更容易建立客戶應(yīng)用程序或給一個配好系統(tǒng)添加功能。 2020 年 , 這個產(chǎn)品就已經(jīng)擁有超過 5 萬的下載量了。 XMPP 技術(shù)概述 XMPP 簡介 XMPP 即 Extensible Messaging and Presence Protocol (可擴展消息處理現(xiàn)場協(xié)議 ) ,簡單的來講 , 它就是一個發(fā)送接收處理消息的協(xié)議 [10]。 XMPP 發(fā)送的消息 , 既不是二進制也不是字符串 , 而是基于可擴展標記語言 (XML)的協(xié)議 , 它用于即時消息 (IM)以及在線現(xiàn)場探測。這個協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時消息 , 即使其操作系統(tǒng)和瀏覽器不同。 XMPP 的基礎(chǔ)知識 XMPP 的基本網(wǎng)絡(luò)結(jié)構(gòu) XMPP 中定義了三個角色 :客戶 端 、 服務(wù)器 、 網(wǎng)關(guān) 如下圖 2。 服務(wù)器充當 XMPP 通信的一個智能抽象層 , 它主要負責: (1)管理發(fā)出的連接或其他實體的會話 , 在 XML 流的表單中接收和發(fā)送給授權(quán)的客戶端 , 服務(wù)器和其他實體; (2)用 XML 流通過實體轉(zhuǎn)發(fā)特定地址的 XML 消息 。 服務(wù)器同時承擔了客戶端信息記錄,連接 管理和信息的路由功能 。多個不同資源 (比如不同的設(shè)備和地點 )的客戶端可以同時登陸并且并發(fā)的連接到一個服務(wù)器 , 每個不同資源的客戶端通過 XMPP 地址的資源標識符來區(qū)分 (比如 /smack 和 /spark)。 (IANA 已經(jīng)注冊了 xmppclient 和 xmppserver 作為 [TCP]端口號5222 和 5269 的關(guān)鍵字 。 網(wǎng)關(guān)是一個特殊用途的服務(wù)器端的服務(wù) , 承擔著與異構(gòu)即時消息系統(tǒng)的互聯(lián)互通 ,主要功能是把 XMPP 譯成外部 (非 XMPP)消息系統(tǒng) , 并把返回的消息翻譯成 XMPP。 XMPP 的數(shù)據(jù)結(jié)構(gòu) 從結(jié)構(gòu)上看 , XMPP 有 3 種數(shù)據(jù) :XML 流、 XML 節(jié) 和 流認證 。一個XML 流是由一個 XML 打開標簽 stream (包含適當?shù)膶傩院兔挚臻g聲明 )開始的 , 流的結(jié)尾則是一個 XML 關(guān)閉標簽 /stream, 是通信雙方采用異步方式進行數(shù)據(jù)傳輸?shù)臉藴史椒?, 在整個 XMPP 通信過程中處于最 外層 。 “ 初始的流 ” 由初始化實體 (通常是一個客戶端或服務(wù)器 )和接收實體 (通常是一個服務(wù)器 )握手 , 從接收實體來看 , 它就是那個初始實體的 會話 。 ◆ XML 節(jié)是實體通過 XML 流傳輸?shù)慕Y(jié)構(gòu)化信息單元 , 在 XML 流中以深度為 1 的子標記開頭 , 并以深度為 1 的子標記結(jié)束 , 這些標記為 message/、 presence/和 8 iq/。一個 XML 直接存在于根元素 stream/的下一級 (在 XML 流中以深度為 1 的子標記開頭 , 并以深度為 1 的子標記結(jié)束 ), 并且如果這樣就能夠滿足 [XML]內(nèi)容的 production 43, 那么它被認為是均衡的 。一個 XML 節(jié)可以包含子元素 (相關(guān)的屬性 , 元素 , 和 XML 字符數(shù)據(jù)等 ) 以表達完整的信息 。 XML 節(jié)也可通過包含其他子元素來傳送結(jié)構(gòu)化信息 , 是實際需要交換的信息所在地 。為了連接一個服 務(wù)器 , 一個客戶端必須發(fā)送一個打開標簽 stream給服務(wù)器 , 初始化一個 XML 流 , 也可選擇在這之前發(fā)送一段文本聲明 XML 版本和支持的字符集 ; 也可看字符編碼。一旦客戶端完成了 SASL 握手 , 客戶端可以通過流發(fā)送不限量的 XML 節(jié)給網(wǎng)絡(luò)中的任何接收者。 如果會話中發(fā)生錯誤 , 任何一方均可 用 ERROR 子元素予以應(yīng)答。 然后 , 客戶端和服務(wù)器都應(yīng)該徹底地終止這個連接 (通常是一個 TCP 連接 )。 XMPP 為 XML 流扮演通用 “ 傳輸層 ” 的角色。 為了防止會話被篡改和偷聽 , XMPP 協(xié)議采用認證和加密的方法作為其安全機制 , 其中認證采用 SASL[7](Simple Authentication and Security Layer)認證和回撥(Dialback)認證 , 加密利用 TLS(Transport Layer Security)協(xié)議。 XMPP 的協(xié)議棧結(jié)構(gòu)如圖 3 所示。協(xié)商過程如下: (1)客戶端、服務(wù)器都打開 Stream; (2)接著服務(wù)器發(fā)送 STARTTLS 擴展標簽給客戶端 (包含所支持的認證機制和任何其他流特性 ); (3)客戶端發(fā)送 STARTTLS 命令給服務(wù)器 , 并等待進一步指示; (4)服務(wù)器回復 proceed/標簽通知客戶端可以繼續(xù)進行; (5)客戶端和服務(wù)器嘗試通過已有的 TCP 連接完成 TLS 協(xié)商; (6)如果認證成功 , 客戶端初始化一個新的流給服務(wù)器 , 否則服務(wù)器關(guān)閉 TCP 連接。客戶端在列表中選擇需要的認證機制 , 通過 auth命令通知服務(wù)器 , 接下來雙方就可以進行 SASL 認證了。 XMPP 的地址空間 (1)概覽 [13] 一個實體可以是任何一個被認為是一 個網(wǎng)絡(luò)端點的東西 (例如網(wǎng)絡(luò)上的一個 ID), 而且它是通過 XMPP 進行通信的。由于歷史原因 , 一個 XMPP 實體的地址被稱為 Jabber Identifier 或 JID。 JID 的語法定義 , 使用 [ABNF]中的 Augmented BackusNaur 格式。 所有 JID 都是基于上述的結(jié)構(gòu)。不過 , 節(jié)點類型不是客戶端也是有可能的 , 比如一個用來提供多用戶聊天服務(wù)的特定的聊天室 , 地址可以是 roomservice(這里 “room”是聊天室的名字而“service”是多用戶聊天服務(wù)的主機名 ), 而加入了這個聊天室的某個特定的用戶的地址則是 roomservice/nick(這里 “nick”是用戶在聊天室的昵稱 )。 一個 JID 的每個合法部分 (節(jié)點名 , 域名 , 資源名 )的長度不能超過 1023 字節(jié)。39。/39。 (2)域名 域名是一個主要的 ID 并且是 JID 中唯一必需的元素 (一個純粹的域名也是一個合法的 JID)。然而 , 由一個域名標識引用的實體 , 并非總是一個服務(wù)器 , 它也可能是一個服務(wù)器的子域地址 , 提供額外的功能 (比如多用戶聊天服務(wù) , 用戶目錄 , 或一個 到外部消息系統(tǒng)的網(wǎng)關(guān) )。一個域名 ID 必須是 [IANA]里定義的 “ 國際化域名 ” , 并且按 RCF3920 的 [STRINGPREP]中 [NAMEPREP]profile 進行成功的字符轉(zhuǎn)換。 XMPP 的三個頂級元素 XMPP 定義了三種核心的 XML 節(jié): message/、 presence/、 iq/(info/query), 即三個頂級元素 [14]。 與 XML 流類似 , 在 XML 節(jié)傳輸期間 , 如果產(chǎn)生語義或應(yīng)用上的錯誤 , 任何一方都可以使用 ERROR 元素通知對方。不過 , 跟 Email 系統(tǒng)不同的是 , 這種消息傳遞是非常實時的。 在發(fā)送的時候 , 所有的 message 節(jié)
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1