java - 如果使用 Java Smack API 连接中断,如何在使用 nextResult() 时了解或捕获异常?

标签 java xmpp smack

我正在使用 Java Smack API 开发一个应用程序。我使用 PacketCollector.java 类的 nextResult() 方法来接收下一条传入消息。 (根据文档,此方法会阻塞,直到有输入。)

http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/PacketCollector.html

我有一个问题,如果连接突然中断(例如,由于网络断开等),我如何知道或如何捕获异常?

最佳答案

nextResult() 调用将等待,直到与过滤器匹配的数据包到达。查看源代码,我认为只要您使用相同的连接实例,它甚至会在断开连接并重新连接后等待。

您不应该真正使用nextResult(),而是使用nextResult(long)。如果连接因任何原因断开,nextResult() 不会引发异常,并且没有充分的理由使用 nextResult() 而不是具有合理超时值的 nextResult(long)

关于java - 如果使用 Java Smack API 连接中断,如何在使用 nextResult() 时了解或捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230679/

相关文章:

java - 谷歌云消息或 XMPP

java - super在Java中是如何实现的?

java - 使用 jasperreport 生成的 PDF 在 Linux 上显示效果不佳,但在 Mac 上显示效果良好,可能与操作系统有关吗?

java - mocks - 如何验证调用了私有(private)方法

python - pyxmpp2 连接到 openfire 无法解析 NXDOMAIN

java - OpenFire 服务器中用户的 JID 应该是什么?

java - 从本地机器到 AWS RDS PostgreSQL 数据库的连接速度非常慢

xmpp - Bosh 使用 openfire 设置

java - 使用 smack 从消息存档 openfire 中获取最新对话

java - 安卓/Smack : Keep XMPP connection alive in sleep mode