本文对于刚开始XMPP的学习者非常有用,初始登录过程主要包括如下基本步骤:
1. 查询和使用TLS
2. 查询和使用SASL并使用账户密码登录
3. bind资源
4. 广播自己的出息信息并接受Server广播的出息信息
5. 下载自己的Roster,vcard, block, disc, bookmark等信息
- ####client下线
- <presence type="unavailable">
- <status>Logged out</status>
- </presence>
- ####client发起连接
- <?xml version="1.0"?>
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" version="1.0" xmlns="jabber:client" to="xumatomacbook-pro.local" xml:lang="en" xmlns:xml="http://www.w3.org/XML/1998/namespace">
- ####server相应并回复验证的features
- <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='xumatomacbook-pro.local' id='675c6847-c13d-4710-9844-d9339e4df087' version='1.0' xml:lang='en'>
- <stream:features>
- <ver xmlns="urn:xmpp:features:rosterver"/>
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
- <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
- <mechanism>PLAIN</mechanism>
- <mechanism>ANONYMOUS</mechanism>
- </mechanisms>
- <register xmlns="http://jabber.org/features/iq-register"/>
- <auth xmlns="http://jabber.org/features/iq-auth"/>
- </stream:features>
- ####client启动tls验证
- <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
- ####server表示支持,可以继续
- <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
- ####tls验证结束,重新开始
- <?xml version="1.0"?>
- <stream:stream xmlns:stream="http://etherx.jabber.org/streams" version="1.0" xmlns="jabber:client" to="xumatomacbook-pro.local" xml:lang="en" xmlns:xml="http://www.w3.org/XML/1998/namespace">
- ####server响应,并返回下一步验证支持的features,sasl
- <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='xumatomacbook-pro.local' id='675c6847-c13d-4710-9844-d9339e4df087' version='1.0' xml:lang='en'>
- <stream:features>
- <ver xmlns="urn:xmpp:features:rosterver"/>
- <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">