XMPP RFC閱讀筆記(一)

2021-09-08 15:17:08 字數 1186 閱讀 9165

以下所有內容均是根據自己的記憶和理解,如有不正確甚至謬誤之處,請多見諒。

1、什麼是xmpp ?

xmpp的前身是jabber,乙個開源形式組織產生的網路即時通訊協議。xmpp目前被ietf國際標準組織完成了標準化工作。標準化的核心結果分為兩部分;

核心的xml流傳輸協議

基於xml流傳輸的即時通訊擴充套件應用

xmpp的核心xml流傳輸協議的定義使得xmpp能夠在乙個比以往網路通訊協議更規範的平台上。借助於xml易於解析和閱讀的特性,使得xmpp的協議能夠非常漂亮。

xmpp的即時通訊擴充套件應用部分是根據ietf在這之前對即時通訊的乙個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如aim,qq等有功能完整,完善等先進性。

2、xmpp的基本網路結構是怎樣的?

xmpp中定義了三個角色,客戶端,伺服器,閘道器。通訊能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端資訊記錄,連線管理和資訊的路由功能。閘道器承擔著與異構即時通訊系統的互聯互通,異構系統可以包括sms(簡訊),msn,icq等。基本的網路形式是單客戶端通過tcp/ip連線到單伺服器,然後在之上傳輸xml。

3、xmpp通過tcp傳什麼了?

4、舉個例子看看所謂的xml流是什麼樣子的?

客戶端:<?xml version='1.0'?>

伺服器:<?xml version='1.0'?>

...其他通訊...

客戶端:

客戶端: art thou not romeo, and a montague?

客戶端:

伺服器:

伺服器:neither, fair saint, if either thee dislike.

伺服器:

客戶端:

伺服器:

以文件的觀點來看,客戶端或伺服器傳送的所有xml文字連綴在一起,從到構成了乙個完整的xml文件。其中的stream標籤就是所謂的xml stream。在與中間的那些...這樣的xml元素就是所謂的xml stanza(xml節)。xmpp核心協議通訊的基本模式就是先建立乙個stream,然後協商一堆安全之類的東西,中間通訊過程就是客戶端傳送xml stanza,乙個接乙個的。伺服器根據客戶端傳送的資訊以及程式的邏輯,傳送xml stanza給客戶端。但是這個過程並不是一問一答的,任何時候都有可能從乙個方發信給另外一方。通訊的最後階段是關閉流,關閉tcp/ip連線。

閱讀筆記一

保持軟體設計的品質。壞的架構設計會招致更壞的架構設計。開發團隊中健康的工作關係將直接有益於軟體設計。不健康的關係和個性膨脹會導致不健康的軟體。軟體設計的關鍵品質是內聚和耦合。高內聚 strongcohesion 和低耦合 low coupling 鬆弛而模糊的架構將導致每個 元件編寫得不好,並且相互...

Dissecting MFC 閱讀筆記 一

閱讀下面一段程式,並寫出它的執行結果 include include 成員訪問許可權和繼承控制都是 private 再加加上 整合的方式是 public 所以才能訪問資料成員 class classa void func2 virtual void vfunc1 virtual void vfunc...

Effect Java 閱讀筆記(一)

乙個靜態工廠的小例子 以下方法得到的物件是事先構造好的不可變物件,反覆利用 public static boolean valueof boolean b 使用靜態工廠的優勢 靜態工廠方法的缺點 簡而言之,如果類的構造器或者靜態工廠中具有多個引數,設計這種類時,builder模式就是不錯的選擇 si...