XMPP 注销(Smack API),无需断开与服务器的连接

Posted

技术标签:

【中文标题】XMPP 注销(Smack API),无需断开与服务器的连接【英文标题】:XMPP Logout (Smack API) without disconnecting with the server 【发布时间】:2011-10-01 10:03:50 【问题描述】:

我正在使用 smack API 连接到 Openfire 服务器。能够创建用户、登录和交换消息。 注销后,我希望在不断开与服务器连接的情况下完成我的活动(用户必须进入主屏幕)。 有人在这种情况下使用过 Smack API 吗?

【问题讨论】:

【参考方案1】:

如果您在 android 上使用 smack,那么您应该考虑将应用程序的连接部分作为一项服务运行,该服务可以灵活地在后台运行。如果您的活动进入 onStop() 或 onDestroy() 状态,您将与服务器断开连接。

可以通过 YourConnection.disconnect 注销。如果您不想断开与服务器的连接,则必须改为更改您的状态。

【讨论】:

【参考方案2】:

我在 Smack 文档中没有找到任何解决方案。 如果你做connect(),在disconnect()之后你会再次被认证,并且登录会抛出AlreadyAuthanticated异常。

但是,断开连接后,您可以销毁 XMPPConnection 对象并创建新的对象

【讨论】:

以上是关于XMPP 注销(Smack API),无需断开与服务器的连接的主要内容,如果未能解决你的问题,请参考以下文章

使用 Smack API (xmpp) 从 Java 回调 JavaFX

XMPP Smack - 如何检查连接是活动的还是断开的?

Android基于XMPP Smack Openfire下学习开发IM连接断开重连

检索在 Smack XMPP 服务器中注册的用户的位置信息(无需订阅)

Smack XMPP 连接状态,数据不正确

使用 Smack API 进行 XMPP 注册返回错误请求 - 修改