Проблема создания комнаты чата с XMPP в приложении для iOS - PullRequest
0 голосов
/ 21 июня 2011

У меня есть приложение для iphone, где я хочу использовать чаты. Я установил сервер XMPP (ejabberd) и загрузил платформу XMPP для iOS из кода Google (http://code.google.com/p/xmppframework/). Сервер и клиент работают должным образом, поскольку я могу войти в систему и отправить сообщения чата между двумя пользователями.

Однако, когда я пытаюсь создать комнату чата, используя метод createOrJoinRoom класса XMPPRoom (в XEP-0045), я не получаю никакого ответа от сервера, и комната чата не создается.

Я отладил, чтобы посмотреть, какой пакет отправляется на сервер, и выглядит это так:

<presence from="test2@beta.bogus.net/mynick" to="muumit15@conference.beta.bogus.net">
  <x xmlns="http://jabber.org/protocol/muc"/>
</presence>

Я не получаю сообщение об ошибке, но чат-комната (muumit15) не создана. В то же время я могу использовать, например, Adium клиент для создания чата и это удается. Сервер настроен так, что каждый пользователь имеет право создавать чаты.

Есть идеи? Я даже пытался прослушать трафик TCP / IP, отправленный клиентом Adium, но он был зашифрован / сжат / двоичен, поэтому я не мог видеть, какие пакеты он отправляет.

1 Ответ

1 голос
/ 22 июня 2011

См. Раздел 7.2.2 XEP-0045 , в частности, Пример 18:

<presence
    from='hag66@shakespeare.lit/pda'
    to='coven@chat.shakespeare.lit/thirdwitch'>
  <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

Обратите внимание, что адрес to ДОЛЖЕН содержать ресурс, а ваш - нет.Ресурсом является строка после /, которая используется в качестве вашего псевдонима в комнате.Для получения дополнительной информации о формате адреса XMPP см. RFC 6122 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...