XMPP之Message節點

版權所有,轉載請註明出處: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
    當雙方前面發送的消息處理過程中有錯誤發生,該類型的節點就用反饋錯誤信息。

除type屬性外,message節還包含了from,to屬性,其中都是JID,分別表示消息的源和目的地址。message還可以承載一些子節點,XMPP核心規範中定義以下基本的承載,如<body/>和<subject/>,都是用於聊天消息,如下:
<message from="[email protected]/foo"
    to="[email protected]"
    type="chat">
    <body>Who are you?</body>
    <subject>Query</subject>
</message>
當然message節點,包括之後介紹的其他節點,都可以承載XMPP核心協議中沒有定義的子節點,用於節點的擴展。
發佈了124 篇原創文章 · 獲贊 4 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章