添加增强调试器以查看基于 Smack android 的 XMPP 客户端的数据包级别信息

Posted

技术标签:

【中文标题】添加增强调试器以查看基于 Smack android 的 XMPP 客户端的数据包级别信息【英文标题】:Adding Enhanced Debugger to view packet level information for Smack android based XMPP client 【发布时间】:2016-01-11 10:27:12 【问题描述】:

我指的是 https://www.igniterealtime.org/builds/smack/docs/4.1.0/documentation/debugging.html 在我的 android studio 中集成调试器控制台并添加了 SmackConfiguration.DEBUG = true;但仍然看不到任何调试窗口。 请帮帮我。

已编辑 [2018 年 2 月 8 日]:

根据smack调试文档(https://github.com/igniterealtime/Smack/blob/master/documentation/debugging.md)

我们可以在 logcat 或系统控制台中显示所有数据包级别信息。

对于控制台日志:

 System.setProperty("smack.debuggerClass", "org.jivesoftware.smack.debugger.ConsoleDebugger")
 System.setProperty("smack.debugEnabled", "true")

对于 Android Logcat:

SmackConfiguration.DEBUG = true

但是,根据文档,它提供了 GUI 调试器,即 Lite Debugger 和 Enhanced Debugger

查看多个无组织的 XMPP 日志根本不可读。但是,通过 GUI 调试器(如增强型调试器)读取会很方便。

我正在使用 Ubuntu (Linux OS) 和 Android Studio 进行开发。

我们如何添加 GUI 调试器来调试构建 android 客户端?

【问题讨论】:

我也在尝试这样做。你在哪里能弄明白? @user2660386 没有单独的窗口,但我可以看到详细的日志。 您是如何访问日志的?你在日志中输入了什么来搜索 smack 调试? @user2660386 如果你的代码中有 SmackConfiguration.DEBUG = true ,那么你可以在 logcat 中看到 smack 相关的日志 Checkout this answer 这解决了我的调试问题 【参考方案1】:

像这样设置系统属性:

System.setProperty("smack.debuggerClass","org.jivesoftware.smack.debugger.ConsoleDebugger");
System.setProperty("smack.debugEnabled", "true");
SmackConfiguration.DEBUG = true;

【讨论】:

是的,这行得通。它会将 logcat 中的所有 smack 流量打印为 system.out

以上是关于添加增强调试器以查看基于 Smack android 的 XMPP 客户端的数据包级别信息的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Smack 4.2 的消息节点中添加自定义标签

基于androi的医院挂号预约系统app

XMPP 中的节实现

openfire+smack怎么实现类似于qq群的功能?

Java Smack XMPP 查看服务器响应

Smack - 获取条目以特定字母开头