以下所有內容均是根據自己的記憶和理解,如有不正確甚至謬誤之處,請多見諒。
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...