Smack API выдает ошибку при локальном входе в настройку Tigase Server

1

В настоящее время я разрабатываю клиент для 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 в API Smack и выглядел так же, как указано в решении ссылки.

Спасибо, Ameya

Теги:
login
xmpp
smack

2 ответа

3
Лучший ответ

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

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

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

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

-1

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

  • 0
    Что я должен сделать, чтобы заставить его работать правильно. Я попробовал тот же код с сервером Gtalk, и он нормально работает с ним. Так что я предполагаю, что проблема в настройке сервера (некоторые проблемы с ресурсами). на стороне сервера?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню