通信协议---XMPP

什么是XMPP?

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

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

身份标识

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

例如:[email protected]

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="[email protected]"
to="[email protected]"
type="avalible"/>

这段Stanza表示的就是[email protected][email protected]用户发送了上线通知


发布了38 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/coderlady/article/details/52557575