Pergunta

Estou tentando estabelecer uma conexão com um servidor XMPP usando o Smack.

ConnectionConfiguration cf = new ConnectionConfiguration("jabber.ccc.de");
cf.setTruststorePassword("changeme");
this.connection = new XMPPConnection(cf);
this.connection.connect();
this.connection.login("user", "password");

Mas sempre que o login eu recebo uma XMPPEXCIPE (nenhuma resposta do servidor.:) E o soquete é fechado.

Alguma idéia do que está dando errado aqui?

Cumprimentos

Foi útil?

Solução

Você já tentou ver quais são os dados XMPP reais que estão sendo enviados de/para o servidor?

Tente adicionar isso ao seu código na inicialização:

System.setProperty("smack.debugEnabled", "true");
XMPPConnection.DEBUG_ENABLED = true;

Outras dicas

Tente este.

ConnectionConfiguration cf = new ConnectionConfiguration("jabber.ccc.de",5222, "test");
cf.setTruststorePassword("changeme");
this.connection = new XMPPConnection(cf);
this.connection.connect();
this.connection.login("user", "password");

Basta colocar a linha a seguir antes de fazer a conexão.

SASLAuthentication.supportSASLMechanism("PLAIN");

Esse problema foi abordado por uma pessoa chamada Davanum; Veja o link

O problema é: você está por trás de uma lenta conexão à Internet. Você precisa aumentar o tempo limite para a resposta do pacote na Smack Config.

Estranhamente, você pode obter esse problema, apenas a primeira vez, após uma inicialização do sistema cliente (Windows).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top