XMPP协议解析
2016-04-23 10:41
197 查看
XMPP国际标准的协议
可扩展的消息和展示的协议,是一种基础的开放式实时通信协议。可扩展新,强可读性。 相比Email的发展史,163和qq邮箱之间的通信。为了兼容,符合同一种标准。即实现不同邮箱之间的通信。 国内腾讯一家独大,微信和qq能交流,但是却不能和阿里旺旺取得联系。
XMPP协议的优缺点
优点: 开放性,标准性,可扩展和跨平台。 能与所有遵守xml协议的软件之间的通信。 缺点: 数据冗余。 》使用xml作为结构体,必定会有冗余。 不支持二进制数据。 》只限定在文本数据,专注于文本传输。图片和声音等不善长。 最大的问题还是数据冗余,移动端会产生很大的流量。 推送功能就不在乎了。
XMPP基础知识
只限制了传输内容的格式,不关心底层数据的格式。 XMPP规定,每个客户端是使用jid来作为身份标识:[user"@"]domin["/"resource] XMl Stanza属性 .from who .to who .type指定Stanza的类型 .id 让服务器知道是哪个
Stream结构
CLient <Stream:stream to="" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/stream" version="1.0" > Server <Stream:stream from="" id="someid" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/stream" >
结束标签
Client </stream:stream> Server </stream:stream> 表示下线状态
presence结构
在线时还有扩展标签
<show>详细表示用户的在线状态chat away xa dnd <status>准确的告诉别人你去干什么了
Message结构
IQ结构
获取联系人状态
注册 登录都是使用Iq标签
相关文章推荐
- 一款新颖实用的安防产品--丁盯智能门磁
- sql server存储过程 以及几个常用案例
- PostgreSQL之序列使用
- async & await (转载)
- 最长公共子序列(LCS问题)的DP解法
- 为什么用BufferedWriter将int型写入文件后是乱码-Java/Eclipse
- BestCoder Round #81 (div.2)
- SCCM 2012远程控制
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- 盘点淘宝、腾讯、百度内部使用的JavaScript库
- 第五篇:R语言数据可视化之散点图
- Git 配置和仓库获取
- NYOJ 202 红黑树 旋转不影响中序遍历 代码带解释
- vim补全
- 第九周实践项目1————深复制体验(2)
- MediaStore 与Media.EXTERNAL_CONTENT_URI
- 一个简单自激振荡器电路分析
- 机器学习经典书籍----陈楠心血总结
- 启动界面调用的窗体
- SCCM 2012 软件部署操作手册