2010-06-11 20 views
3

Ceci est en ce qui concerne poster herePas capable de se connecter client Android avec le serveur XMPP locale

Je suis en mesure de connecter mon PC à la configuration du serveur tigase locale localement (j'utilise l'API Smack). Maintenant, je suis confronté à des problèmes lorsque je veux connecter Android Phone à ce serveur via le Wi-Fi. Je suis capable de se connecter au serveur local en utilisant le client Beem pour android.Mon nom de domaine XMPP du serveur est mon nom de PC "mwbn43-1" et l'adresse IP est "192.168.0.221" (Je suis capable de cingler ce serveur de Émulateur de terminal Android). Dans les paramètres de Beem il y a une option avancée où je peux spécifier le serveur que je veux me connecter (que j'ai donné comme adresse IP) .Si je ne mets pas cette option je ne peux pas conect.Now voici l'extrait de la code que j'ai utilisé pour mon client Android.

XMPPConnection.DEBUG_ENABLED = true; 
    ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1",5222); 

    //ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.221",5222);    
    config.setSASLAuthenticationEnabled(false); 
    config.setCompressionEnabled(false); 

    XMPPConnection xmpp = new XMPPConnection(config); 

    try { 

      xmpp.connect(); 

      xmpp.login("[email protected]", "tigase"); 
      String host = xmpp.getHost(); 
      String id = xmpp.getConnectionID(); 
      int port = xmpp.getPort(); 
      boolean i = false; 
      i = xmpp.isConnected(); 
      if(i) 
      {answer = "Connected to " + host + " via port " + port + " with ID " + id; 
      answerfield.setText(answer);} 

      }//end try 
    catch (XMPPException e) { 
    answerfield.setText("Failed to connect"); 
    Log.v(TAG, "Failed to connect to " + xmpp.getHost()); 
      e.printStackTrace(); 

Je suis aussi capable de se connecter au serveur Google talk avec l'aide de cette connexion avec le serveur faisant code.While local, je adresse IP essayé de donner ainsi que le nom d'hôte à connect.When Je donne adr IP (192.168. 0.221) Je reçois 'Pas de réponse d'erreur de serveur' avec stream: erreur (host-unknown) et quand je donne le nom d'hôte (mwbn43-1) je reçois 'remote-server-timeout (504)' avec l'hôte non résolu.

J'ai regardé le code de Beem pour voir comment il se connecte au serveur mais n'a pas pu trouver beaucoup.J'ai également donné des autorisations d'utilisateur pour Internet.Can n'importe qui s'il vous plaît dites-moi quelles lignes de code dois-je ajouter pour communiquer avec le serveur.

+0

Il peut être un problème tigase. Je ne peux pas me connecter à mon serveur Tigase à partir de Pidgin et Empathy avec l'erreur "host-unknown". Il a l'habitude de travailler à partir de jabberd. – v6ak

+0

Cette solution a travaillé pour moi !! Si vous utilisez un appareil Android pour vous connecter au serveur XMPP (ejabberd dans mon cas), vous devez utiliser ASmack jar au lieu de Smack jar. Si votre serveur XMPP est installé localement et si vous vous connectez via WIFI, vous devez utiliser le constructeur ConnectionConfiguration à 3 arguments. Le premier argument HOST a besoin de votre adresse IP WIFI LOCALE (soyez très prudent avec cela), le second argument sera le port 5222 et le troisième argument devrait être le nom du serveur XMPP que vous avez créé lors de son installation. Ensuite, pour connection.login ("nom d'utilisateur", "mot de passe") vous pouvez simplement utiliser un nom d'utilisateur comme admin. –

+0

duplication possible de l'exception ['remote-server-timeout' pendant que j'essaie de me connecter au serveur] (http: // stackoverflow.com/questions/18285323/remote-server-timeout-exception-as-i-try-to-connect-to-the-server) – Flow

Répondre

6

Essayez 3 arguments ConnectionConfiguration constructor. Il vous permet d'indiquer l'hôte, le port et le domaine. L'hôte et le domaine ne doivent pas nécessairement avoir les mêmes valeurs. Dans votre cas, je suppose:

ConnectionConfiguration config = 
    new ConnectionConfiguration("192.168.0.221",5222,"mwbn43-1"); 
+0

Je suis confronté à un problème de connexion de périphérique virtuel Android au serveur xmpp. J'utilise ce [code] (http://paste.ofcode.org/36CSHhtnaEVDUrgqnWMzqW7) pour se connecter à xmpp et je reçois [exception] (http://paste.ofcode.org/3b9wT5yeuLB97rfZgZ7eFEZ), pouvez-vous dire une solution pour ça? –

+0

Aucune idée. Posez-le comme une autre question. – mschonaker

+0

merci de regarder cela, son résolu avec [cette] (http://stackoverflow.com/a/27981613/3409600) solution –

2

Essayez de supprimer le nom d'hôte de l'appel de connexion.

Par exemple, utilisation

connection.login("username", "password"); 

au lieu de

connection.login("[email protected]", "password"); 
+0

@Hitesh Patel Je suis confronté à un problème de connexion de périphérique virtuel Android au serveur xmpp. J'utilise ce [code] (http://paste.ofcode.org/36CSHhtnaEVDUrgqnWMzqW7) pour se connecter à xmpp et je reçois [exception] (http://paste.ofcode.org/3b9wT5yeuLB97rfZgZ7eFEZ), pouvez-vous dire une solution pour ça? –

0

Utilisez le constructeur à trois arguments pour ConnectionConfiguration. et transmettez les informations d'identification sans extension de nom d'hôte.

Par exemple, voir ci-dessous le code:

ConnectionConfiguration config = new ConnectionConfiguration("hostname/IP address", 5222, "servicename/domainname"); 
connection = new XMPPConnection(config); 
connection.connect(); 
connection.login("user1", "password");` 
0

Vérifiez si vous avez déclaré l'autorisation appropriée: android.permission.INTERNET

+0

Je suis confronté à un problème de connexion de périphérique virtuel Android au serveur xmpp. J'utilise ce [code] (http://paste.ofcode.org/36CSHhtnaEVDUrgqnWMzqW7) pour se connecter à xmpp et je reçois [exception] (http://paste.ofcode.org/3b9wT5yeuLB97rfZgZ7eFEZ), pouvez-vous dire une solution pour ça? –