Для приложения мне нужно создать многопользовательский чат и присоединиться к нему. Чат-сервер является сервером openfire.
Я имел обыкновение иметь:
MultiUserChat chat = new MultiUserChat(connection, roomName + "@conference.localhost");
chat.join(nickname);
Когда комната не существует, она создает комнату и соединяется. однако следующий пользователь не может присоединиться. Он получает 404, получатель недоступен (404). Что говорит о том, что чат заблокирован или что-то в этом роде.
Затем я нашел код в документации, и я попробовал следующее:
chat.create(nickname);
// Send an empty room configuration form which indicates that we want
// an instant room
chat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
Однако, когда я пытаюсь выполнить это, он говорит, что он сбой со следующей ошибкой в logcat:
03-02 12:04:12.890: E/AndroidRuntime(20872): FATAL EXCEPTION:
AsyncTask #3 03-02 12:04:12.890: E/AndroidRuntime(20872):
java.lang.RuntimeException: An error occured while executing
doInBackground()
03-02 12:04:12.890: E/AndroidRuntime(20872): Caused
by: java.lang.ClassCastException:
org.jivesoftware.smack.packet.DefaultPacketExtension cannot be cast to
org.jivesoftware.smackx.packet.MUCUser 03-02 12:04:12.890:
E/AndroidRuntime(20872): at
org.jivesoftware.smackx.muc.MultiUserChat.getMUCUserExtension(MultiUserChat.java:2002)
03-02 12:04:12.890: E/AndroidRuntime(20872): at
org.jivesoftware.smackx.muc.MultiUserChat.create(MultiUserChat.java:364)
03-02 12:04:12.890: E/AndroidRuntime(20872): at
be.xios.crs.pivi.managers.XmppManager.createOrJoinChatGroup(XmppManager.java:116)
Надеюсь, кто-то может помочь мне в этом и дать некоторые рекомендации.