Вопрос

Хорошо, проблема должна быть тривиальной, но я не могу понять это.

У меня есть два пользователя A & B

Их JID для этого примера будет@123 и B@123, где 123 - IP -адрес сервера.

Я отправляю сообщение из A-> B, используя следующий код:

   chat = chatmanager.createChat(username,
   new MessageListener() {
      public void processMessage(Chat chat, Message message) {}});
   String sendUsername = username + "@123";
   Message msgObj = new Message(sendUsername, Message.Type.chat);
   msgObj.setBody(message);

   chat.sendMessage(msgObj);

Я жестко закодировал IP, так что я на 100% уверен, что прикрепляю «@123» в конце прозвища, чтобы не было неправильных джидов.

Так что@123 отправляет MSGOBJ в B@123. Вот как я понял, что сообщения XMPP работают. Что вы не можете отправить из A-> b, но это должно быть@123 -> b@123.

Однако мой сервер, кажется, думает иначе. Это постоянно сообщает мне о следующей ошибке:

 2010.12.27 19:02:52 [org.jivesoftware.openfire.session.LocalOutgoingServerSession
 .createOutgoingSession(LocalOutgoingServerSession.java:258)] Error trying to 
 connect to remote server: A(DNS lookup: A:5269) 
 java.net.UnknownHostException: A 

Как в списке A и B на сервере OpenFire, они имеют друг друга в качестве контакта с соответствующими JID (имя пользователя@123).

Кто -нибудь может дать некоторое понимание? Я потерялся.

Редактировать

Я пытаюсь использовать Wireshark, чтобы поймать XML, отправленный на сервер OpenFire и обратно, чтобы определить, правильно ли получатель сообщения именовано (A@123 вместо A).

При использовании Wireshark я получил это как передача XML:

\302\3469\223\341\3429\000\000\000\000\377\377

Я отключил SSL, я подключился к непосредственно. Я не уверен, почему я получаю SSL -тип XML, это то, что это такое?

Это было полезно?

Решение

Оказывается, ответ на эту проблему было то, что было просто пропущено.

В первой строке кода:

 chat = chatmanager.createChat(username, new MessageListener() {
            public void processMessage(Chat chat, Message message) {}
      });

Я не сделал переменную «имя пользователя» иметь правильное расширение IP. Так что это было просто "а" вместо "@123"

Перемещение "sendusername" на вершину и изменение «имени пользователя» на «Sendusername» заставляет все работать отлично :)

Глупая ошибка.

Другие советы

Использование IP -адресов почти всегда более запутанно, чем вы думаете.

Есть большая вероятность, что вы неправильно настроены OpenFire, так что IP -адрес не является действительным именем хоста. Зайдите в консоль администратора, в разделе «Свойства системы» и убедитесь, что xmpp.domain Свойство установлено на ваш IP -адрес.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top