Android消息推送2

来源:互联网 发布:用户和数据库的接口 编辑:程序博客网 时间:2024/05/23 12:20

第三章 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>
0 0
原创粉丝点击