ошибка при создании комнаты в muc с помощью xmpp

Я создаю комнату, используя приложение для Android, используя библиотеку smack.

Ниже приведен код для создания группового чата (комнаты) с использованием muc:

MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
muc = manager.getMultiUserChat("[email protected]");
muc.create("myroom");
muc.sendConfigurationForm(new Form(DataForm.Type.submit));

Ниже приведен журнал выполнения вышеуказанных команд для создания группы в MUC:

<presence to='[email protected]/myroom' id='wvAb9-11'><x xmlns='http://jabber.org/protocol/muc'></x><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>

<presence type="error" xmlns="jabber:client" id="wvAb9-11" from="[email protected]/myroom" to="dk@yama/Smack"><x xmlns="http://jabber.org/protocol/muc"/><c xmlns="http://jabber.org/protocol/caps" node="http://www.igniterealtime.org/projects/smack" hash="sha-1" ver="NfJ3flI83zSdUDzCEICtbypursw="/><error type="cancel" code="404"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">S2S - destination host not found</text></error></presence>

org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: remote-server-not-found - cancel
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)

at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:311)

at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:400)

at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:376)

<presence to='[email protected]/myroom' id='wvAb9-11'><x xmlns='http://jabber.org/protocol/muc'></x><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>

<presence type="error" xmlns="jabber:client" id="wvAb9-11" from="[email protected]/myroom" to="dk@yama/Smack"><x xmlns="http://jabber.org/protocol/muc"/><c xmlns="http://jabber.org/protocol/caps" node="http://www.igniterealtime.org/projects/smack" hash="sha-1" ver="NfJ3flI83zSdUDzCEICtbypursw="/><error type="cancel" code="404"><remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">S2S - destination host not found</text></error></presence>

org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: remote-server-not-found - cancel

at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)

at org.jivesoftware.smackx.muc.MultiUserChat.enter(MultiUserChat.java:311)

at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:400)

at org.jivesoftware.smackx.muc.MultiUserChat.createOrJoin(MultiUserChat.java:376)

at org.jivesoftware.smackx.muc.MultiUserChat.create(MultiUserChat.java:354)

at com.example.sufalam.tigasechatdemo.UserListActivity$3.onClick(UserListActivity.java:72)

at android.view.View.performClick(View.java:4780)

at android.view.View$PerformClick.run(View.java:19866)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:135)

at android.app.ActivityThread.main(ActivityThread.java:5254)

at java.lang.reflect.Method.invoke(Native Method)

at java.lang.reflect.Method.invoke(Method.java:372)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)at org.jivesoftware.smackx.muc.MultiUserChat.create(MultiUserChat.java:354)

at com.example.sufalam.tigasechatdemo.UserListActivity$3.onClick(UserListActivity.java:72)

at android.view.View.performClick(View.java:4780)

at android.view.View$PerformClick.run(View.java:19866)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:135)

at android.app.ActivityThread.main(ActivityThread.java:5254)

at java.lang.reflect.Method.invoke(Native Method)

at java.lang.reflect.Method.invoke(Method.java:372)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

person Naitik    schedule 22.01.2016    source источник


Ответы (2)


Вы пытаетесь создать комнату myroom на сервере конференции conference.192.168.1.4, но в ответ получаете ошибку remote-server-not-found.

Имя сервера conference.192.168.1.4 выглядит странно, так как представляет собой смесь имени хоста и IP-адреса. Вам нужно выяснить, как на самом деле называется сервер конференций, либо проверив его конфигурацию, либо (если сервер конференций работает как компонент сервера, к которому вы подключаетесь) с помощью выполнение запроса на обнаружение службы "items".

Я не знаком с Tigase, но похоже, что его служба MUC представлена ​​в виде отдельного компонента. Вы можете проверить, правильно ли он установлен и запущен.

person legoscia    schedule 22.01.2016
comment
Спасибо @legoscia .. у меня нет сочетания имени хоста и IP-адреса ... мы можем использовать IP-адрес хоста или имя хоста сами по себе ... - person Naitik; 22.01.2016
comment
привет @legosia у меня такая же проблема и я не могу найти, пожалуйста, помогите мне - person Saveen; 31.03.2016
comment
примечание: я могу создать через имя сервера: conference.IP_ADDRESS. Я использую клиент android smack для сервера ejabbered. - person Killer; 08.02.2018

Чтобы создать комнату, пожалуйста, установите spark на свой компьютер и войдите в систему с учетной записью пользователя openfire, и оттуда создайте комнату, которую вы получите.

[email protected]

в моем случае я получил это. так что теперь я попытался создать комнату через свое приложение и указать имя сервера как

конференц-магазин

и название группы. моя группа успешно создана. Пожалуйста, не указывайте IP-адрес при создании комнаты.

person J.D.    schedule 28.01.2016