Connection Server:
Sent: <stream: stream to = "jabber.cn" xmlns = "jabber: client" xmlns: stream = "http://etherx.jabber.org/streams" version = "1.0">
Recv: <? XML version = '1. 0'?> <Stream: stream xmlns: stream = 'HTTP: // etherx.jabber.org/streams' id = '43feaee5 'xmlns = 'jabber: client' from = 'jabber. CN 'version = '1. 0'>
Recv: <stream: features> <register xmlns = 'HTTP: // region> <auth xmlns = 'HTTP: // jabber.org/features/iq-auth'/> </stream: features>
Login (authentication ):
Sent: <IQ id = "jcl_103" type = "get"> <query xmlns = "jabber: IQ: auth "> <username> renziyi </username> </query> </IQ>
Recv: <IQ id = 'jcl _ 103 'type = 'result'> <query xmlns = 'jabber: IQ: auth '> <username> renziyi </username> <digest/> <password/> <resource/> </query> </IQ>
Sent: <IQ id = "jcl_104" type = "set"> <query xmlns = "jabber: IQ: auth "> <username> renziyi </username> <resource> exodus </resource> <digest> 2ee43612345655d3279a45227ede2969c7 </digest> </query> </IQ>
Recv: <IQ id = 'jcl _ 104 'type = 'result'/>
Download friend list:
Sent: <IQ id = "jcl_105" type = "get"> <query xmlns = "jabber: IQ: roster"/> </IQ>
Recv: <IQ id = 'jcl _ 105 'type = 'result' from = 'renziyi @ jabber.cn/exodus'> <query xmlns = 'jabber: IQ: roster '> <item jid = 'renzy @ jabber.cn' name = 'renzy 'subscribe = 'to'> <group> friends </group> </item> </query> </IQ>
Change your status to online:
Sent: <presence> <C node = "http://exodus.jabberstudio.org/caps" ver = "0.9.1.0" xmlns = "http://jabber.org/protocol/caps"/> <status> available </status> <priority> 1 </Priority> </ presence>