Smack API выдает ошибку при локальном входе в настройку Tigase Server - PullRequest
1 голос
/ 05 июня 2010

В настоящее время я разрабатываю Android-клиент XMPP для локальной связи с настройкой сервера Tigase. Прежде чем приступить к разработке на Android, я пишу простой код Java на ПК для проверки соединения с сервером XMPP. Мой домен XMPP - это имя моего компьютера "mwbn43 1 "и имя пользователя и пароли администратора - admin и tigase соответственно.

Ниже приведен фрагмент кода, который я использую

class Test {

public static void main(String args[])throws Exception
{

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

ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1", 5222);
config.setCompressionEnabled(true);
config.setSASLAuthenticationEnabled(true);

XMPPConnection con = new XMPPConnection(config);

// Connect to the server
con.connect();
con.login("admin", "tigase");

Chat chat = con.getChatManager().createChat("aaphadke@mwbn43-1",
    new MessageListener() {       
    public void processMessage(Chat chat, Message message) {
           // Print out any messages we get back to standard out.
           System.out.println("Received message: " + message);
       }
   });
        try {
      chat.sendMessage("Hi!");
  }
  catch (XMPPException e) {
      System.out.println("Error Delivering block");
  }


 String host = con.getHost();
 String user = con.getUser();
 String id = con.getConnectionID();
 int port = con.getPort();
 boolean i = false;
 i = con.isConnected();
 if (i)
 System.out.println("Connected to host " + host + " via port " + port + " connection id is " + id);

 System.out.println("User is " + user);
 con.disconnect();
 }
 }

Когда я запускаю этот код, я получаю следующую ошибку

 Exception in thread "main" Resource binding not offered by server: 
 at   org.jivesoftware.smack.SASLAuthentication.bindResourceAndEstablishSession(SASLAuthenticatio     n.java:416) at    org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:331)
 at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
 at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:349)
 at Test.main(Test.java:26)

Я нашел эту статью по той же проблеме, но никакого конкретного решения здесь Может кто-нибудь сказать мне решение этой проблемы. Я проверил файл XMPPConnection.java в Smack API, и он выглядит так же, как указано в решении ссылки.

Спасибо, Ameya

Ответы [ 2 ]

3 голосов
/ 07 июня 2010

Я нашел решение проблемы, как указано в здесь

Это строки, которые я должен добавить перед подключением к серверу

ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1", 5222);
config.setSASLAuthenticationEnabled(false);
XMPPConnection xmpp = new XMPPConnection(config);

Спасибо за вашу помощь

0 голосов
/ 05 июня 2010

Я думаю, что это проблема с библиотекой, ошибка. Он не обрабатывает протокол правильно. Перед аутентификацией пользователя нет смысла отправлять привязку ресурса, следовательно, он не объявляется сервером. Клиент не должен жаловаться на это.

...