用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='admin@192.168.0.97/Psi' to='coderplay@192.168.0.97/TelnetClient'>  
  2. <priority>5</priority>  
  3. </presence><presence from='coderplay@192.168.0.97/Psi' to='coderplay@192.168.0.97/TelnetClient'>  
  4. <priority>5</priority>  
  5. </presence>  

原来admin在上面嘞, coderplay发个消息过去:
xml 代码
 
  1. <message to='admin@192.168.0.97/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. "给coderplay@192.168.0.97/TelnetClient.那么正在telnet的coderplay就会收到:
xml 代码
 
  1. <message from='admin@192.168.0.97/Psi' to='coderplay@192.168.0.97/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='admin@192.168.0.97/Psi' to='coderplay@192.168.0.97/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.  
成功下线!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值