我正在尝试使用StropheJS创建一个聊天室
我的代码:
var presence = $pres({ to: "testRoom@conference@localhost/yashwanth, from: Strophe.getBareJidFromJid(connection.jid) });
Groupie.connection.send( presence.tree());
Groupie.connection.muc.createInstantRoom("testRoom@conference.localhost/yashwanth",
function(status) {
console.log("Room Created Successfully", status);
},
function(status) {
console.log("Error Creating Room", status);
});
在创建房间时,我面临以下错误。
我发现roomJID的格式应为room_name @ conference @ HOST @ / nickname。所以根据我发送的格式。但它并没有创造出这个空间。
Error Creating Room <iq xmlns="jabber:client" from=
"conference@conference.localhost" to="yashwanth@inst1.eab.com/
5441440311438943022710601" type="error" id="1:sendIQ"><query xmlns="http://
jabber.org/protocol/muc#owner">…</query><error code="404" type="cancel">
<item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></item-not-
found><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Conference room
does not exist</text></error></iq>
我使用ejabberd作为我的XMPP服务器。如果房间创建了哪个数据库能够保存与房间相关的详细信息?它是保存在muc_registered
表还是muc_room
表中?
答案 0 :(得分:1)
要加入XMPP中的房间,您无需先创建它。
您的代码正在做什么:
muc_room
。createInstantRoom
使用默认选项创建空间,就像加入一样,所以我不明白为什么需要它。所以,我无法告诉你要用你的代码实现什么,但只是将状态发送到房间就足以创建一个非持久的聊天室并加入它。无需致电createInstantRoom
。