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
- Android消息推送2
- Android消息推送,极光推送
- android消息推送-XMPP
- Android中的消息推送
- Android中的消息推送
- Android中的消息推送
- android消息推送-XMPP
- Android消息推送
- Android 消息推送
- android 消息推送
- android消息推送demo
- Android消息推送
- android消息推送
- Android消息推送
- Android消息推送
- Android消息推送机制
- Android消息推送机制
- Android消息推送机制
- MVP模式的入门
- mybatis的通用mapper的通用Example使用
- Linux基础备忘_09:Audit test
- 树形数据的反选有两种方法以及处理后台返回拼装htmL的异步获取不到现象(但是页面F12可以看到)
- ResponseUtil.writeToResponse综合理解
- Android消息推送2
- ELK简单问答
- c++调用.net dll,调试时报异常First-chance exception at 0x7556C54F (KernelBase.dll)
- keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect
- 直接访问/web-inf/下的页面
- 表单修改提交后,中文乱码问题
- C++链表插入,为什么头节点必须是二位指针
- 修改Eclipse项目使之支持JPA工具
- 【Python学习笔记】pip安装失败的替代方法&解决方案