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="madhatter@wonderland.lit/foo"
    to="alice@wonderland.lit"
    type="chat">
    <body>Who are you?</body>
    <subject>Query</subject>
</message>
当然message节点,包括之后介绍的其他节点,都可以承载XMPP核心协议中没有定义的子节点,用于节点的扩展。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值