通信协议---XMPP

XMPP是一种基于XML的即时通讯协议,具有良好的扩展性和跨平台特性。本文介绍了XMPP的基本概念,包括其身份标识方式和XML Stanza中的关键属性,如from、to、type和id等。同时探讨了XMPP在客户端与服务器间的Stream结构及presence通知机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是XMPP?

XMPP(Extensible Messaging and Presence Protocol)翻译过来就是可扩展消息和展示协议,它是一种基于XML的开放性的即时通讯协议,具有很好的扩展性和可读性。

XMPP在国外的通信软件中基本上是已经通用了,在国内的话由于企鹅的一家独大,它并没有用XMPP协议,这就是你为什么微信用户不能和qq用户通信的原因,使用XMPP可以实现跨平台,使用任何的语言在任何系统上都可以使用XMPP协议,但是由于XMPP是基于XML的,所以会造成大量的数据冗余,而且XMPP协议不支持二进制数据,所以文本图片的传输无法实现,如果你要实现这些功能,你可能还需要使用其他的协议。

身份标识

使用的是JID格式,即用户名加域名的格式

例如:1234@test.com

XML Stanza 中的属性

from:数据的发送者

to:指定数据的接收者

type:用于指定Stanza的类型

id:作为一段Stanza的唯一标识

Stream结构

客户端:

<stream:stream
to="接收对象"
xmlns="命名空间"
xmlns:stream="域名"
version="版本号">

服务器端


<stream:stream
from="发送端"
id="Stanza的id"
xmlns:"命名空间"
xmlns:stream="域名"
version="版本号">

这两个结构都没有结束标签,如果要断开连接,只要使用结束标签即可

</stream:stream>


presence结构

<presence
from="tom@163.com"
to="kitte@gmail.com"
type="avalible"/>

这段Stanza表示的就是tom@163.com给kitte@gmail.com用户发送了上线通知


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值