XMPP协议解析

前端之家收集整理的这篇文章主要介绍了XMPP协议解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XMPP国际标准的协议

  1. 可扩展的消息和展示的协议,是一种基础的开放式实时通信协议。可扩展新,强可读性。
  2.  
  3. 相比Email的发展史,163QQ邮箱之间的通信。为了兼容,符合同一种标准。即实现不同邮箱之间的通信。
  4.  
  5. 国内腾讯一家独大,微信和qq能交流,但是却不能和阿里旺旺取得联系。

XMPP协议的优缺点

  1. 优点:
  2. 开放性,标准性,可扩展和跨平台。
  3. 能与所有遵守xml@H_502_9@协议的软件之间的通信。
  4. 缺点:
  5. 数据冗余。
  6. 》使用xml@H_502_9@作为结构体,必定会有冗余。
  7. 不支持二进制数据。
  8. 》只限定在文本数据,专注于文本传输。图片和声音等不善长。
  9. 最大的问题还是数据冗余,移动端会产生很大的流量。
  10. 推送功能就不在乎了。

XMPP基础知识

  1. 只限制了传输内容的格式,不关心底层数据的格式。
  2. XMPP规定,每个客户端是使用jid来作为身份标识:[user"@"@H_502_9@]domin["/"@H_502_9@resource]
  3. XMl Stanza属性
  4. .from@H_502_9@ who
  5. .to who
  6. .type指定Stanza的类型
  7. .id 让服务器知道是哪个

Stream结构

  1. CLient
  2. <Stream:stream
  3. to@H_502_9@=""@H_502_9@
  4. xmlns="jabber:client"@H_502_9@
  5. xmlns:stream="http://etherx.jabber.org/stream"@H_502_9@
  6. version@H_502_9@="1.0"@H_502_9@
  7. >
  8. Server
  9. <Stream:stream
  10. from@H_502_9@=""@H_502_9@
  11. id@H_502_9@="someid"@H_502_9@
  12. xmlns="jabber:client"@H_502_9@
  13. xmlns:stream="http://etherx.jabber.org/stream"@H_502_9@
  14. >

结束标签

  1. Client
  2. </stream:stream@H_502_9@>@H_502_9@
  3. Server
  4. </stream:stream@H_502_9@>@H_502_9@
  5. 表示下线状态

presence结构

在线时还有扩展标签

  1. <show@H_502_9@>@H_502_9@详细表示用户的在线状态chat away xa dnd
  2. <status@H_502_9@>@H_502_9@准确的告诉别人你去干什么了

Message结构

IQ结构

获取联系人状态

注册 登录都是使用Iq标签

猜你在找的XML相关文章