版權所有,轉載請註明出處:http://guangboo.org/2013/03/22/xmpp-message-stanza
XML節是XMPP通訊的基本單元,類似於其他網絡協議的數據包或消息,XML節包含以下概念:
-
節點名,包括message, presence和iq,每種節都要各種的作用,客戶端也會區別處理;
-
屬性,XML節都有各自的屬性,並且這些屬性都有重要的意義;
-
子節點,可以定義節的承載的數據等,這些承載可能會展示給用戶,也可能是承載命名空間下定義的其他行爲。
下面針對XMPP中包含的三種節點,message, presence, iq,進行介紹。
Message節
XMPP的<message/>節點是通訊過程中基本的“推”方式,它是一種“發出不管”的機制,來快速進行消息的獲取。消息通常用在IM,羣聊,提醒和通知,及其他應用。
Message節點有一個type屬性,該屬性有以下5個可能值,分別起到不同的作用:
-
normal
normal類型的消息就像郵件消息一樣,因爲這樣的消息都是獨立的,可能有反饋,也可能沒有; -
chat
chat類型的消息用於雙方實時回話的數據交換,如朋友之間的即時消息聊天; -
groupchat
groupchat類型的消息用於多用戶聊天,即羣聊,類似於IRC。 -
headline
headline類型的消息用於發送提醒和通知,對是否有反饋沒有要求。 -
error
當雙方前面發送的消息處理過程中有錯誤發生,該類型的節點就用反饋錯誤信息。
<message from="[email protected]/foo" to="[email protected]" type="chat"> <body>Who are you?</body> <subject>Query</subject> </message>當然message節點,包括之後介紹的其他節點,都可以承載XMPP核心協議中沒有定義的子節點,用於節點的擴展。