什么是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用户发送了上线通知