XMPP协议的研究

简介:

之前研究过Android的即时通讯软件,实现原理就是基于xmpp协议进行通信,主要涉及到三个部分,openfire(可参考:http://06peng...m/read.php?84)、Smack和Spark。openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,由于Smack在Android中不是很完善,所以使用别人封装好的一个Smack框架叫做ASmack,下载地址:http://code.g...com/p/asmack/ Spark 是IM客户端的实现,其实就是使用了Smack 的api实现的。

这篇文章主要介绍xmpp协议的相关知识和分析一些在项目过程中参考的资料。

XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。

大概概念就是这样,详细请参考百度文库。

介绍一些相关的属性:

 

为了防止服务器间发送的数据被篡改或偷听,XMPP服务器通信引入了TLS机制,使用TLS机制能实现数据的加密,从而保证了在数据传输过程种数据的安全。
一个XMPP实体的地址称为Jabber Identifier或JID,作用类似于IP地址。一个合法的JID包括节点名,域名资源名,其格式为:jid=[node'@']domain['/'resource]

XMPP协议的命名空间:
jabber:iq:private   -- 私有数据存储,用于本地用户私人设置信息,比如用户备注等。
jabber:iq:conference  -- 一般会议,用于多个用户之间的信息共享
jabber:x:encrypted -- 加密的消息,用于发送加密消息
jabber:x:expire  -- 消息终止
jabber:iq:time  -- 客户端时间
jabber:iq:auth  -- 简单用户认证,一般用于服务器之间或者服务器和客户端之间的认证
jabber:x:roster  -- 内部花名册
jabber:x:signed  -- 标记的在线状态
jabber:iq:search -- 用户数据库查询,用于向服务器发送查询请求
jabber:iq:register -- 注册请求,用于用户注册相关信息
jabber:x:iq:roster -- 花名册管理
jabber:x:conference -- 会议邀请,用于向参加会议用户发送开会通知
jabber:x:event  -- 消息事件
vcard-temp  -- 临时的vCard,用于设置用户的头像以及昵称等

具体的连接和使用方法将另外说明,下面附上相关的学习资料:

 

下载文件 (已下载 25 次)
这个文件只能在登入之后下载。请先  注册 或  登入

 

 

下载文件 (已下载 23 次)
这个文件只能在登入之后下载。请先  注册 或  登入

 

 

下载文件 (已下载 26 次)
这个文件只能在登入之后下载。请先  注册 或  登入

 

 

 

      本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/963203,如需转载请自行联系原作者


相关文章
|
存储 DataWorks Unix
Dataworks数据集成之“文本数据”
Dataworks不是支持文本数据导入么?为什么Excel数据不能导入?CSV文件不就是Excel文件么?关于这些问题,我整理了一篇文章进行解释。
1391 2
|
人工智能 文字识别 自然语言处理
文档图像多模态大模型最新技术探索
文档图像多模态大模型最新技术探索
1038 0
|
9月前
|
存储 算法 Oracle
服务器数据恢复—AIX小型机误删除逻辑卷的数据恢复案例
存储设备通过光纤通道将3个LUN映射到AIX小型机。通过AIX-LVM技术将物理卷(PV)构建为卷组(VG),并在卷组空间内创建2个逻辑卷(LV):oradata1和oradata2。 AIX小型机采用JFS2文件系统分配和管理逻辑卷。JFS2文件系统的根目录存储Oracle数据库核心文件(.dbf文件),用于支撑关键业务系统运行。
|
弹性计算 安全 数据库
活动实践 | 通过弹性公网 IP 确保服务迁移时公网 IP 不变
该方案通过弹性公网IP(EIP)实现公网IP与不同资源的灵活关联和解绑,支持业务水平扩容和资源迁移。具体步骤包括:创建ECS实例并分配固定公网IP,安装Web服务,创建自定义镜像以快速部署新实例,将原实例的固定公网IP转为EIP,并将其解绑后绑定到新实例上,确保服务迁移后对外IP不变。最后,清理资源以避免不必要的费用。
|
Rust 开发工具 开发者
Ruff代码分析
Ruff代码分析
469 0
如何微信公众号中的视频保存下来
如何微信公众号中的视频保存下来
1591 0
|
数据可视化 搜索推荐 定位技术
网站地图(sitemap)生成及数据可视化分析工具(SiteMap.Top)
SiteMap.Top 是一款专注于网站地图生成与数据可视化分析的工具,支持一键生成 sitemap.xml 并提供详细的统计数据与可视化界面,帮助网站管理员、SEO 专家及内容创作者高效管理和优化网站结构,提升网站可见性和用户体验。[官网链接](https://sitemap.top/)
846 0
网站地图(sitemap)生成及数据可视化分析工具(SiteMap.Top)
|
设计模式 监控 安全
理解横切关注点
【8月更文挑战第22天】
243 0
|
JSON 应用服务中间件 nginx
在Nginx日志中记录请求的header和请求body
在Nginx日志中记录请求的header和请求body
1587 0
|
存储 安全 区块链
《Solidity 简易速速上手小册》第4章:智能合约的设计与开发(2024 最新版)
《Solidity 简易速速上手小册》第4章:智能合约的设计与开发(2024 最新版)
451 0