Android消息推送2

第三章 XMPP协议解析

中文名 可扩展通讯和表示协议

外文名 Extensible Messaging and Presence Protocol

XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML

优点:

开放性
标准型
可扩展xml格式
跨平台

缺点:

数据冗余
不支持二进制数据

XMPP的身份标识

XMPP规定,每个客户端使用JID来作为身份标识的

[user “@”]domain[“/”resource]

XML Stanza通用属性
  • from
  • to
  • type
  • id
stream结构
Client:
<stream:stream
    to="example.com"
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">

Server:
<stream:stream
    from="example.com"
    id="someid"
    xmlns="jabber:client"
    xmlns:stream="http://etherx.jabber.org/streams"
    version="1.0">

断开会话,发送标签

Client:
</stream:stream>

Server:
</stream:stream>
presence结构,用户状态
<presence
    from="jackson@gmail.com"
    to="jimmy@msn.com"
    type="unavailable">

type参数:

  • available 在线
  • unavailable 不在线
  • subscribe 订阅
  • subscribed 授权订阅
  • unsubscribe 取消订阅
  • unsubscribed 授权取消订阅
  • error 错误


    away
    Having a spot of tea

show参数:

  • chat在线
  • away暂离
  • xa 长时间离开
  • dnd 不想被人打扰
message结构
<message
    from="jackson@gmail.com"
    to="jimmy@msn.com"
    type="chat">
    <body>hello</body>
</message>

type参数:

  • normal 独立消息
  • chat 一对一会话
  • groupchat 群聊会话
  • headline 头条内容
  • error 错误
IQ结构
<iq
    from="jackson@gmail.com"
    id="aa152"
    to="jackson@gmail.com"
    type="get">
    <query xmlns="jabber:iq:roster"/>
</iq>

type参数:

  • get 类似于http请求
  • set
  • result 响应数据结果
  • error 错误

<iq
    from="jackson@gmail.com"
    id="aa152"
    to="jackson@gmail.com"
    type="result">
    <query xmlns="jabber:iq:roster">
        <item jid="jimmy@msn.com"/>
        <item jid="tom@hotmail.com"/>
    </query>
</iq>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值