2010-02-15 9 views
1

J'essaie d'établir une connexion avec un serveur XMPP en utilisant smack.Le serveur XMPP ne répond pas à la requête de connexion Smack

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

Mais chaque fois que vous connecter je reçois un XMPPException (Pas de réponse du serveur .:) et la prise se ferme.

Des idées sur ce qui ne va pas ici?

Cordialement

+0

Je suppose que jabber.ccc.de utilise le port XMPP standard? – Matt

+0

J'ai essayé ConnectionConfiguration ("jabber.ccc.de", 5222) et ConnectionConfiguration ("jabber.ccc.de", 5223). Les deux avec les mêmes résultats. Ils utilisent ejabberd sur ce serveur. Cordialement – raichoo

+0

Quel appel provoque l'exception? .connect() ou .login()? – sfussenegger

Répondre

2

Avez-vous essayé de voir ce que les données XMPP réelles envoyées vers/depuis le serveur est?

Essayez d'ajouter ceci à votre code au démarrage:

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

Merci, le serveur de l'autre côté semble agir bizarrement. Je viens d'installer mon propre serveur Openfire comme suggéré par sfussenegger. Je considère ce problème comme résolu maintenant. Cordialement – raichoo

0

Ce problème a été abordé par une personne appelée Davanum; voir le link

Le problème est: vous êtes derrière une connexion Internet lente. Vous devez augmenter le délai d'attente pour la réponse de paquet dans smack config.

Etrangement, vous pouvez obtenir ce problème, seulement la première fois, après un démarrage du système client (Windows).

0

Essayez celui-ci.

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"); 
0

Mettez juste la ligne suivante avant de faire la connexion.

SASLAuthentication.supportSASLMechanism("PLAIN");