XMLStream可以理解为XMPP内容在不同实体(如client、server)之间传递的容器,XMLStream开始于<stream>标签,结束于</stream>标签,在生命周期中,可传递不限量的XMPP内容。
XMLStanza是被传递的XMPP内容的基本形式,它可以这样定义:1.在</stream>的子层(深度=1);2.元素名称为message、presence或iq(被包含在<message/>、<presence/>或<iq>);3.名字空间为jabber:client 或 jabber:server,这3个条件都满足的话即为XMLStanza。
message为消息, presence为在线状态(在线/离线/可以聊天……),iq表示Info/Query(一去一回)。
之间关系显然,实际情况一般如此:
1.建立XMLStream。
2.通过传递stream完成前期信息交换及认证。
3.传递XMLStanza。
……
关闭XMLStream。
交互过程如下示意图:
+--------------------+--------------------+ | INITIAL STREAM | RESPONSE STREAM | +--------------------+--------------------+ | <stream> | | |--------------------|--------------------| | | <stream> | |--------------------|--------------------| | <presence> | | | <show/> | | | </presence> | | |--------------------|--------------------| | <message to='foo'> | | | <body/> | | | </message> | | |--------------------|--------------------| | <iq to='bar' | | | type='get'> | | | <query/> | | | </iq> | | |--------------------|--------------------| | | <iq from='bar' | | | type='result'> | | | <query/> | | | </iq> | |--------------------|--------------------| | [ ... ] | | |--------------------|--------------------| | | [ ... ] | |--------------------|--------------------| | </stream> | | |--------------------|--------------------| | | </stream> | +--------------------+--------------------+
本文深入探讨了XMLStream作为XMPP内容传递容器的作用及其生命周期,以及XMLStanza作为基本传递内容的形式,包括消息(message)、在线状态(presence)和查询(iq)的具体应用。通过示意图展示了从初始化到关闭XMLStream的过程,包括信息交换、认证和内容传递的交互流程。
1993

被折叠的 条评论
为什么被折叠?



