Smack:调试Smack

本文详细介绍了Smack框架中的调试控制台功能,包括如何启用和禁用debug模式,以及如何通过命令行参数自定义调试器。文章还阐述了不同调试器(如EnhancedDebugger和LiteDebugger)的功能和应用场景,提供了深入的使用指导。

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版本,安装的组件,等)信息。 

 

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。 


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


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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值