天天看点

Smack:调试Smack

Smack包含两个内嵌的调试控制台,它让你跟踪所有在客户端和服务器之间的XML传输。lite debugger是smack.jar的一部分和enhanced debugger被包含在smack-debug.jar。 

Debug模式可以从两种不同的方式启动: 

  1. 在创建一个新的连接之前添加下面行代码: 

Connection.DEBUG_ENABLED = true; 

  1. 设置Java系统属性smack.debugEnabled为true。系统属性可以在命令行中设置,例如: 

java -Dsmack.debugEnabled=true SomeApp 

如果你想在你的应用程序中明确禁止debug模式,包括使用命令行参数,在你操作一个新的连接之前向你的应用程序添加以下行: 

Connection.DEBUG_ENABLED = false; 

Smack使用下面的逻辑来确定使用debug控制台: 

  1. 它将尝试使用在Java系统属性中指定的debugger类smack.debuggerClass。如果你需要开发你自己的debugger,实现SmackDebugger接口,然后再命令行设置系统属性,如下: 

java -Dsmack.debuggerClass=my.company.com.MyDebugger SomeApp 

  1. 如果第一步失败,那么Smack将尝试使用enhanced debugger。smackx-debug.jar文件包了enhanced debugger。因此你将需要在classpath中放置jar文件。对于这种状况空间是一个问题,你可能只想开发smack.jar,在这种情况下enhanced debugger将不可用。 
  2. 如果前两步失败了,最后一步是使用lite debugger。lite debugger对于你需要低内存打印的情况是非常好得选择。 

Enhanced Debugger 

当debug模式启动,一个debug窗口将会显示,包含为每个创建的连接的tab。这个窗口将会包含下面的信息: 

  • Connection tab--每个tab显示相关的连接的debug信息。 
  • Smack Info tab--显示关于Smack(例如Smack版本,安装的组件,等)信息。 
Smack:调试Smack

Connection tab讲包含下面的信息: 

  • 所有的Packet--显示发送和接收被Smack解析的packet信息。 
  • 原始发送Packet--Smack产生并发送给服务器的原始XML传输。 
  • 原始接收Packet--由服务器发送给客户端的原始XML传输。 
  • ad-hot消息-允许发送的任何类型ad-hot packet。 
  • 信息--显示连接状态和统计。 

Lite Debugger 

当debugg模式被启动,当每个新的连接被创建的时候一个debug窗口将会显示。这个窗口将包含下面的信息: 

  • 客户端传输(红色文本)--由Smack产生并发送给服务器的原始的XML传输 
  • 服务器传输(蓝色文本)--由服务器产生发送给客户端的原始XML传输。 
  • 被翻译的Packet(绿色文本)--显示来自服务器被Smack翻译的XML packet。 
    Smack:调试Smack

在任何面板右击来打开一个选择菜单,复制内容到系统剪切板或者清除面板的内容。 

新技术,新未来!欢迎大家关注 “1024工场”微信服务号 ,时刻关注我们的最新的技术讯息! (甭客气!尽情的扫描或者长按!)

Smack:调试Smack