Openfire XMPP MUC创建群聊室错误

时间:2013-09-19 18:34:18

标签: xmpp openfire strophe

使用用户'username @ localhost'连接到openfire服务器后 我正在尝试创建一个群聊即时空间,所以首先 我按照此处的规定发送Presence Stanza:

<presence from='username@localhost' to='testroom@conference.localhost' xmlns='jabber:client'>
   <x xmlns='http://jabber.org/protocol/muc'></x>
</presence>

但是回复总是错误的:

<presence ... from='testroom@conference.localhost type='error'>
    <x xmlns='http://jabber.org/protocol/muc></x>
    <error code='400' type='modify'>
          <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanza"></bad-request>
    </error>
</presence>

我是否需要对Openfire进行任何配置才能使其正常工作?我知道你可以使用Openfire Gui创建一个群聊室,并且工作正常,但当我尝试加入聊天室时,我得到了同样的错误。

1 个答案:

答案 0 :(得分:6)

您需要在房间中指定所需的昵称。这是您发送给的JID的资源。

例如,要以'Joe'的身份加入会议室,请将您的在线状态发送至testroom@conference.localhost/Joe,而不仅仅是testroom@conference.localhost

您的加入节也不应包含“来自”属性,这是added for you by the server。包括一个不会破坏任何东西,但它是没有意义的(无论如何,你的错误,它必须是一个完整的JID)。

因此,正确的节以'乔'的身份加入房间:

<presence to='testroom@conference.localhost/Joe' xmlns='jabber:client'>
   <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

有关详细信息,请参阅XEP-0045: Entering a room