gpt4 book ai didi

java - 使用 XMPP 获取非 SASL 身份验证问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:43 25 4
gpt4 key购买 nike

我正在实现一个聊天应用程序,我有一个 Openfire 支持作为后端,并使用 Asmack 版本 8-0.8.9 来实现它。但是,我在登录期间遇到非 SASL 身份验证问题,并在消息中收到“服务器无响应”。此外,我还面临一个问题,每当应用程序处于空闲状态几分钟(不执行任何操作)时,我的 session 就会从 openfire 中删除,并且会断开连接。

这就是我连接到 openfire 然后执行登录的方式:

AndroidConnectionConfiguration  connConfig = 
new AndroidConnectionConfiguration(HOST, PORT,SERVICE);
connConfig.setDebuggerEnabled(true);
connConfig.setReconnectionAllowed(false);
connConfig.setRosterLoadedAtLogin(true);
connConfig.setSASLAuthenticationEnabled(false);
connection.connect();
connection.login(Uname,Password);

在大多数情况下,这工作正常,但在登录期间随机出现错误,即服务器没有响应并显示非 SASL 身份验证消息。

我做错了什么?如果您需要任何其他详细信息,请告诉我。

提前致谢!

最佳答案

您必须确保包含所有必要的 jar。

根据您的依赖管理系统,您必须以不同的方式添加它,但请确保包含 smack-sasl-javax、smack-java7 和 smack-resolver-javax。

使用 Maven 将会是:

<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-sasl-javax</artifactId>
<version>4.1.6</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-java7</artifactId>
<version>4.1.6</version>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-resolver-javax</artifactId>
<version>4.1.6</version>
</dependency>

并确保您正在验证服务器证书。

这可以通过“setHostnameVerifier(XMPPHostnameVerifier verifier)”和“setCustomSSLContext(SSLContext context)”来完成。

关于java - 使用 XMPP 获取非 SASL 身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com