xmpp协议阅读总结
xmpp的官网,上面有xmpp的一切重要信息: http://xmpp.org
XMPP(Extensible Messaging and Presence Protocol), 是XML的一种应用, 用于即时的(near real time)在两个或多个网络实体(network entity)间交换 结构化的可扩展的数据(structured and extensible data),
以下两个是XMPP的两个主要的协议, 第一个主要讲了如何建立和关闭一个XML stream , XML stream, XML stanza的定义, XMPP中的术语(terminology)的定义, XMPP的技术结构(2章architecture), 以及一些概念的简单性介绍, 如XML namespace ,详细的有相应的文档, 其中有7节有个 resource binding , 这个是bare JID的最后一部份, 相当于我们工程中的sessionId, 一个user account可以有多个session, 第8节介绍了 XML stanza, 如所有stanza的 common attribute, to, from, type, id, xml:lang, 特别写了stanza的错误处理, 错误类型 , 然后举了一些例子
http://xmpp.org/rfcs/rfc6120.html
http://xmpp.org/rfcs/rfc6121.html
这个文档XMPP 扩展了 XMPP core feature, 提供了基本的 Instant Messaging and Presence 功能,
managing the roster, 服务端要管理user的 好友列表, 2节讲了相关的协议
managing presence subscribtions , 管理一个user presence对哪些user可见, B想看到A的presence , 需要去subscribe, A要同意才行, 双方任一解除, 就不再可见
以上两个目前talk工程都没有实现
4 , exchanging presence information, 介绍了presence的基本概念, 广播, 语法....(后面细看)
5, exchanging messages, a message stanza is used to "push" information to another entity, 讲了message stanza的语法, to , type attribute, body element , 以及 extended content,如何扩展, 没明白, 不详细
然后讲了一个sample session, 和server rules, 如何处理XML stanza
XMPP is designed for the exchange of XML stanzas (not arbitrary XML data), xml stanza的定义在 1)的4.1, A stanza is a first-level element (at depth=1 of the stream) whose element name is "message", "presence", or "iq" and whose qualifying namespace is 'jabber:client' or 'jabber:server'
xml namespace的一篇文章, 讲得挺明白 http://www.w3school.com.cn/xml/xml_namespaces.asp