該協議擴充套件有乙個比較經典的應用場景. 通常xmpp伺服器為了效能上的考慮,限制了stanza
(xml節)的大小不能超過指定的位元組數.
當我在野外探險的時候,我發現了乙個仙境,但是我通過xmpp客戶端給我的兄弟夥說的時候,他既然不相信,怎麼能讓他相信我呢,我帶了手機,我首先想到的時給他傳送一張我拍的**. 但是我的xmpp伺服器限制了最大不能傳送超過64kb大小的節
. 所以我不得不把**資料切分為多個小於64kb的塊
, 然後把這些塊連續的發給我的兄弟,讓他收完後在組裝起來.
要實現分塊/組裝的功能,下面有幾個要求:
xmpp限制了傳輸的資料型別, 所以二進位制資料必須編碼為base64格式的字串.
我要把**切分成等大的n個塊(最後乙個塊可能小於這個大小)
我的兄弟收到這些塊之後在拼接起來最後顯示這張.
下面來看看這個轉換過程:
1
要注意的時,iq
節包含乙個直接子元素open
, 其屬性block-size
指定了每個塊的大小,xmlns
屬性指明了open
元素所在的命名空間, 最重要的時sid
,其作為位元組流的唯一標識.
1
1
qanqr1dbwu4dx7jmyznncmuqb/9kukbddzqh+tz1zywkk0yhknq57kwq+rftqdcj...
1
dnade1qojh4qk7wzlmaapzhdo...
1
1
xep-0047 帶內位元組流
xmpp 帶內註冊
xmpp 帶內註冊 1 帶內註冊 in band registration 的概念 帶內註冊指的是未在你的伺服器上開通賬號的使用者可以通過xmpp協議註冊新賬號。相反的概念是帶外註冊 out of band registration 例如 你必須到某個指定的web頁面進行註冊。如果伺服器允許帶內註冊...
帶外管理和帶內管理
帶外管理和帶內管理 2007 10 29 22 09 06 標籤 休閒 帶外帶內 職場帶外管理是新一代網路管理技術的簡稱。網路管理又分為帶內管理 in band 和帶外管理 out of band 目前我們使用的網路管理手段基本上都是帶內管理,即管理控制資訊與資料資訊使用統一物理通道進行傳送。例如 ...
string詳解 內帶例題
string做為乙個c 的優秀的類,它具有很多簡易的封裝函式,對於我們解決oj問題有很大的幫助,所以在很多情況下,我們都選擇string解決題目。下面我們將結合具體oj題目對string這個類進行透徹的講解,讀者也可以將其與c語言的char進行比較,總結自己的經驗成果。1 宣告乙個c 字串 2 字串...