首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用strophe在openfire中创建持久的房间?

如何使用strophe在openfire中创建持久的房间?
EN

Stack Overflow用户
提问于 2017-08-09 18:46:19
回答 1查看 429关注 0票数 3

我正在使用以下iq消息在openfire中创建持久房间:

代码语言:javascript
复制
var configiq = $iq({
        to : chatObj.getActiveChatRoomName() + "@" + chatObj.groupChatService,
        type : "set"
    }).c("x", {
        xmlns : "jabber:x:data",
        type : "submit"
    }).c('field', {
        "var" : "FORM_TYPE"
    })
    .c('value').t("http://jabber.org/protocol/muc#roomconfig")
    .up().up()
    .c('field', {
        "var" : "muc#roomconfig_persistentroom"
    })
    .c('value').t("1");


chatObj.connection.sendIQ(configiq.tree(), function () {
    console.log('success');
}, function (err) {
    console.log('error', err);
});

但是,我得到了以下错误:

代码语言:javascript
复制
error <iq xmlns=​"jabber:​client" type=​"error" id=​"1356:​sendIQ" from=​"msrtc0711@conference.stslp239" to=​"ashishjmeshram@stslp239/​ax8nb2atg1">​<x xmlns=​"jabber:​x:​data" type=​"submit">​…​</x>​<error code=​"400" type=​"modify">​<bad-request xmlns=​"urn:​ietf:​params:​xml:​ns:​xmpp-stanzas">​</bad-request>​</error>​</iq>​
EN

回答 1

Stack Overflow用户

发布于 2017-08-10 14:56:16

使用Strophe.muc插件更容易:

1)首先加入房间(即创建一个即时房间):

代码语言:javascript
复制
connection.muc.join(room_jid, nick);

2)然后创建一个“已配置的房间”,最终创建一个主题和描述:

代码语言:javascript
复制
var config = {"muc#roomconfig_publicroom": "1", "muc#roomconfig_persistentroom": "1"};
if (descr)  config["muc#roomconfig_roomdesc"] = descr;
if (subject)  config["muc#roomconfig_subject"] = subject;
connection.muc.createConfiguredRoom(room_jid, config, onCreateRoomSuccess, onCreateRoomError);

此处提供了一个可用的示例:http://plnkr.co/edit/Mbi15HDZ2yW5vXskS2X6?p=preview

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45588494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档