Ejabberd로 새 Smack 4.2를 구현했습니다. 로그인하지 않았거나 등록하기 전에 연결이 끊어졌습니다. 로그인 또는 등록 전에 연결을 만들고 싶습니다. 동일한 코드가 Openfire 서버에서 잘 작동합니다.Error smack에서 연결이 끊어졌습니다. 4.2
연결이 생성 될 때 몇 초 (거의 30 초) 만에 오류가 발생합니다. 연결 XMPPTCPConnection [인증되지] (0) 오류 org.jivesoftware.smack.XMPPException $ StreamErrorException 폐쇄 : 연결 시간 초과 당신은 재 연결에 http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
에서이 스트림 오류의 의미에 대한 자세한 내용을보실 수 있습니다 그것은 헤로인 재 연결 관리자 (0) java.lang.IllegalArgumentException가 : 사용자 이름이 org.jivesoftware.smack.util.StringUtils.requireNotNullOrEmpty에서 null 또는 비워 둘 수 없습니다 (StringUtils.java:468을
치명적인 예외 오류와 함께 충돌한다) (추상 XMP 연결. (AbstractXMPPConnection.java:448) at org.jivesoftware.smack.ReconnectionManager $ 2.run (ReconnectionManager.java:254) at java.lang.Thread.run (Thread.java : 818)
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();
}
미리 감사드립니다 구성의 코드
일부 라인.
왜 코드를 추가하지 않으시겠습니까? – MrPk
연결을 확인하는 중 사용자 이름이 null이거나 비어 있는지 확인하십시오. 사용자 이름이 null이거나 비어 있다는 로그가 명확하게 기록됩니다. –
실제로 로그인 및 등록 전에 연결을 만들고 싶습니다. 연결조차도 생성되지만 몇 초 안에 끊어집니다. 로그인 및 등록을 수행하는 동안 시간을 절약하기 전에 연결 만들기. 이것은 또한 Openfire에서 잘 작동합니다. Ejabberd로 설정을 변경해야합니까? – Neha