我正在从我的Android项目中的aSmack迁移到最新版本的Smack库我遇到了这个问题... aSmack方法setSASLAuthenticationEnabled在smack中不存在,现在我无法连接到我工作的两个服务器(其中一个需要SecurityMode.required,另一个需要SecurityMode.disabled)。
这是我目前的代码与smack ...
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setHost(host.getHost())
.setPort(host.getPort())
.setXmppDomain(TDActivity.get_domainXMPP())
.setSecurityMode(SecurityMode.required)
.setCompressionEnabled(true)
.build();
connectionXMPP = new XMPPTCPConnection(config);
这是旧的asmack正常工作的代码......
AndroidConnectionConfiguration config = new AndroidConnectionConfiguration (host.getFQDN(),host.getPort(),TDActivity.get_domainXMPP());
config.setSASLAuthenticationEnabled(true);
config.setSecurityMode(SecurityMode.required);
config.setCompressionEnabled(true);
config.setReconnectionAllowed(false);
SmackConfiguration.setKeepAliveInterval(1000 * 5); // 5 sec
SmackConfiguration.setPacketReplyTimeout(1000 * 10); // 10 sec
(在发布服务器中,证书已更新,但在生产中它们已过期。这就是为什么它适用于发布而不是生产。但证书的更新不依赖于我,所以我必须找到一个通用溶液)
干杯!