Android 错误smack 4.2时连接关闭
我用Ejabberd实现了新的Smack 4.2,如果我不登录或注册,我会在出现错误时关闭连接,因为我想在登录或注册之前创建连接。同样的代码在Openfire服务器上运行良好 在建立连接的几秒钟内(将近30秒),我就遇到了这个错误。 连接XMPPTCPConnection[未经身份验证](0)已关闭,但出现错误 org.jivesoftware.smack.XMPPException$StreamErrorException:connection timeout您可以在以下位置阅读有关此流错误含义的更多信息: 在重新连接时,它将因此错误而崩溃 致命异常:Smack重新连接管理器(0)java.lang.IllegalArgumentException:用户名不能为null或空 位于org.jivesoftware.smack.util.StringUtils.requireNotNullOrEmpty(StringUtils.java:468) 位于org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:484) 位于org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:448) 位于org.jivesoftware.smack.ReconnectionManager$2.run(ReconnectionManager.java:254) 运行(Thread.java:818) 一些配置代码行Android 错误smack 4.2时连接关闭,android,ejabberd,smack,Android,Ejabberd,Smack,我用Ejabberd实现了新的Smack 4.2,如果我不登录或注册,我会在出现错误时关闭连接,因为我想在登录或注册之前创建连接。同样的代码在Openfire服务器上运行良好 在建立连接的几秒钟内(将近30秒),我就遇到了这个错误。 连接XMPPTCPConnection[未经身份验证](0)已关闭,但出现错误 org.jivesoftware.smack.XMPPException$StreamErrorException:connection timeout您可以在以下位置阅读有关此流错误含
if (connection == null || !connection.isConnected()) {
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
DomainBareJid serviceName = JidCreate.domainBareFrom(Constants.SERVER_NAME);
config.setServiceName(serviceName);
InetAddress inetAddress = InetAddress.getByName(Constants.HOST);
config.setXmppDomain(Constants.SERVER_NAME);
config.setHostAddress(inetAddress);
config.setHost(Constants.HOST);
config.setPort(Constants.PORT);
config.setResource(Constants.RESOURCE);
config.setDebuggerEnabled(true);
SASLAuthentication.blacklistSASLMechanism("PLAIN");
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
SASLAuthentication.unBlacklistSASLMechanism("SCRAM-SHA-1");
XMPPTCPConnection.setUseStreamManagementDefault(true);
connection = new XMPPTCPConnection(config.build());
initializingMessageReceivedListeners();
enableReConnection();
connection.connect();
}
提前感谢。找到了我自己问题的解决方案Openfire允许在您未登录时创建连接,但Ejabberd会在几秒钟后中断,但我们可以延迟此时间。找到了我自己问题的解决方案Openfire允许在您未登录时创建连接,但Ejabberd会在几秒钟后中断秒,但我们可以延迟此时间。为什么不添加一些代码?在连接时检查您的用户名是否为null或空。日志清楚地提到用户名为null或空。实际上我想在登录和注册之前创建连接。即使建立了连接,也会在几秒钟内中断。在登录和注册之前创建连接可以节省时间。这也适用于Openfire。我是否需要对Ejabberd进行任何配置更改?为什么不添加一些代码?在连接时检查您的用户名是否为null或空。日志清楚地提到用户名为null或空。实际上我想在登录和注册之前创建连接。即使建立了连接,也会在几秒钟内中断。在登录和注册之前创建连接可以节省时间。这在Openfire中也可以正常工作。我需要对Ejabberd进行任何配置更改吗?我可以知道,你是如何解决的吗?我可以知道,你是如何解决的吗?