希望有人能帮助我理解我在尝试加入已经存在的公共MUC房间时遇到的错误代码404。
这是XMPP序列:
在房间
上执行IQ查询<iq from='bridgetest1@jabber.org/BridgeClient' id='0da67229d8f55e3b'
to='sdfsdfsdf@conference.jabber.org' type='get'>
<query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>
IQ查询的响应
<iq from='sdfsdfsdf@conference.jabber.org' to='bridgetest1@jabber.org/BridgeClient' type='result' id='0da67229d8f55e3b'>
<query xmlns='http://jabber.org/protocol/disco#info'>
<identity category='conference' name='sdfsdfsdf' type='text'/>
<feature var='http://jabber.org/protocol/muc'/>
<feature var='http://jabber.org/protocol/muc#unique'/>
<feature var='muc_temporary'/><feature var='muc_open'/>
<feature var='muc_public'/><feature var='muc_unsecured'/>
<feature var='muc_temporary'/><feature var='muc_anonymous'/>
<x xmlns='jabber:x:data' type='result'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/muc#roominfo</value>
</field>
<field label='Subject Modifiable' var='muc#roominfo_subjectmod' type='boolean'>
<value>0</value>
</field><field label='Current Occupants' var='muc#roominfo_occupants' type='text-single'>
<value>1</value>
</field>
</x>
</query></iq>
尝试使用Presence
加入会议室<presence from='bridgetest1@jabber.org/BridgeClient' id='0da67229d8f55e3b' to='sdfsdfsdf@conference.jabber.org/bbbb'>
<x xmlns='http://jabber.org/protocol/muc'/>
</presence>
加入响应(错误404)
<presence from='sdfsdfsdf@conference.jabber.org' to='bridgetest1@jabber.org/BridgeClient' type='error' id='0da67229d8f55e3b'>
<x xmlns='http://jabber.org/protocol/muc'/>
<error code='404' type='cancel'>
<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</presence>
有人知道为什么我不能加入房间吗?我刚刚加入它创建了临时房间,但是在我加入之后我就无法重新进入,即使IQ结果显示它是'muc_open'。
答案 0 :(得分:4)
更新:我正在审核MUC XEP-0045文件,并发现以下段落解释了我的问题。
http://xmpp.org/extensions/xep-0045.html#createroom-instant
我没有意识到只是加入一个房间没有完成这个过程,你仍然必须告诉服务器你想接受所有默认设置与即时房间部分,否则它仍然是锁定。
对于记录,在创建房间(并成为所有者)后发送下面的代码段解决了我的问题。
<iq from='crone1@shakespeare.lit/desktop'
id='create1'
to='coven@chat.shakespeare.lit'
type='set'>
<query xmlns='http://jabber.org/protocol/muc#owner'>
<x xmlns='jabber:x:data' type='submit'/>
</query>
</iq>