用telnet来与ejabberd交互

看了一篇文章,觉得用telnet来调试ejabberd也是一种好办法,同时可以明文看到服务器返回的xml. 先telnet上去

 代码
 
  1. # telnet 192.168.0.97 5222  
  2. Trying 192.168.0.97...  
  3. Connected to erlt97.3322.org (192.168.0.97).  
  4. Escape character is '^]'.  

连接被接收啦,客户端发送
xml 代码
 
  1. <?xml version='1.0'?>  
  2. <stream:stream xmlns:stream="http://etherx.jabber.org/streams" to="192.168.0.97" xmlns="jabber:client">  

服务器会返回
xml 代码
 
  1. <?xml version='1.0'?>  
  2. <stream:stream xmlns='jabber:client'   
  3.     xmlns:stream='http://etherx.jabber.org/streams'   
  4.     id='3089822900'   
  5.     from='192.168.0.97'   
  6.     xml:lang='en'>  

然后再用coderplay登陆进去看看,jabberd的user@domain/resource格式

xml 代码
 
  1. <iq type='set' id='auth'>                      
  2. <query xmlns='jabber:iq:auth'>                     
  3.         <username>coderplay</username>                      
  4.         <password>123456</password>                       
  5.         <resource>TelnetClient</resource>  
  6. </query></iq>  

服务器如果成功,则只返回:
xml 代码
 
  1. <iq type='result' id='auth'/>  
客户端想看看现在的状态
xml 代码
 
  1. <presence/>  
服务器就会返回:
xml 代码
 
  1. <presence from='[email protected]/Psi' to='[email protected]/TelnetClient'>  
  2. <priority>5</priority>  
  3. </presence><presence from='[email protected]/Psi' to='[email protected]/TelnetClient'>  
  4. <priority>5</priority>  
  5. </presence>  

原来admin在上面嘞, coderplay发个消息过去:
xml 代码
 
  1. <message to='[email protected]/Psi'>   
  2. <subject>Hello</subject>                        
  3. <body>I am chatting with a Telnet client ! </body>                                   
  4. </message>  

admin从psi客户端收到消息啦.


admin从psi窗口回复一条消息"Just a reply, I am admin. "给[email protected]/TelnetClient.那么正在telnet的coderplay就会收到:
xml 代码
 
  1. <message from='[email protected]/Psi' to='[email protected]/TelnetClient' 
  2. id='ab52a'>  
  3. <subject>Re: Hello<!----></subject>  
  4. <body>Just a reply, I am admin.<!----></body>  
  5. <!----></message>  

admin发完后, 从psi客户端那儿下线了,则coderplay会收到:

xml 代码
 
  1. <presence from='[email protected]/Psi' to='[email protected]/TelnetClient' 
  2. type='unavailable'>  
  3. <status>Logged out<!----> </status>  
  4. <!----></presence>  

admin闪了,coderplay也先,那怎么从telnet下线呢? 用
xml 代码
 
  1. <!----></stream:stream>  

tel回复
xml 代码
 
  1. <!----></stream:stream>Connection closed by foreign host.  
成功下线!!

你可能感兴趣的:(xml)