Xmpp MUC功能未实现

时间:2014-04-02 02:55:38

标签: javascript windows openfire strophe

我尝试实现群聊'功能

这是我的部署环境

Openfire (3.9.1)
Strophe.js (1.1.3)
strophe.muc.js (1.7.1)
XAMPP for Windows (1.8.2)

我发送请求想要获取xmpp名称空间常量

<body rid='641581465' xmlns='http://jabber.org/protocol/httpbind' sid='189f4df8'>
      <iq xmlns='jabber:client' type='get' from='message@tkb-c0695c83280/189f4df8' to='tkb-c0695c83280' id='189f4df8'>
           <query xmlns='http://jabber.org/protocol/disco#info'/>
      </iq>

获得回复后

<body xmlns="http://jabber.org/protocol/httpbind">
<iq id="189f4df8" xmlns="jabber:client" type="result" from="tkb-c0695c83280" to="message@tkb-c0695c83280/189f4df8">
    <query xmlns="http://jabber.org/protocol/disco#info">
        <identity category="server" name="Openfire Server" type="im"></identity>
        <identity category="pubsub" type="pep"></identity>
        <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"></feature>
        <feature var="http://jabber.org/protocol/pubsub#modify-affiliations"></feature>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-default"></feature>
        <feature var="http://jabber.org/protocol/pubsub#collections"></feature>
        <feature var="jabber:iq:private"></feature>
        <feature var="http://jabber.org/protocol/disco#items"></feature>
        <feature var="vcard-temp"></feature>
        <feature var="http://jabber.org/protocol/pubsub#publish"></feature>
        <feature var="http://jabber.org/protocol/pubsub#subscribe"></feature>
        <feature var="http://jabber.org/protocol/pubsub#retract-items"></feature>
        <feature var="http://jabber.org/protocol/offline"></feature>
        <feature var="http://jabber.org/protocol/pubsub#meta-data"></feature>
        <feature var="jabber:iq:register"></feature>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"></feature>
        <feature var="http://jabber.org/protocol/pubsub#default_access_model_open"></feature>
        <feature var="jabber:iq:roster"></feature>
        <feature var="http://jabber.org/protocol/pubsub#config-node"></feature>
        <feature var="http://jabber.org/protocol/address"></feature>
        <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"></feature>
        <feature var="http://jabber.org/protocol/pubsub#item-ids"></feature>
        <feature var="http://jabber.org/protocol/pubsub#instant-nodes"></feature>
        <feature var="http://jabber.org/protocol/commands"></feature>
        <feature var="http://jabber.org/protocol/pubsub#multi-subscribe"></feature>
        <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"></feature>
        <feature var="http://jabber.org/protocol/pubsub#get-pending"></feature>
        <feature var="jabber:iq:privacy"></feature>
        <feature var="http://jabber.org/protocol/pubsub#subscription-options"></feature>
        <feature var="jabber:iq:last"></feature>
        <feature var="http://jabber.org/protocol/pubsub#create-and-configure"></feature>
        <feature var="urn:xmpp:ping"></feature>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-items"></feature>
        <feature var="jabber:iq:time"></feature>
        <feature var="http://jabber.org/protocol/pubsub#create-nodes"></feature>
        <feature var="http://jabber.org/protocol/pubsub#persistent-items"></feature>
        <feature var="jabber:iq:version"></feature>
        <feature var="http://jabber.org/protocol/pubsub#presence-notifications"></feature>
        <feature var="http://jabber.org/protocol/pubsub"></feature>
        <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"></feature>
        <feature var="http://jabber.org/protocol/pubsub#delete-nodes"></feature>
        <feature var="http://jabber.org/protocol/pubsub#purge-nodes"></feature>
        <feature var="http://jabber.org/protocol/disco#info"></feature>
        <feature var="http://jabber.org/protocol/rsm"></feature>
    </query>
</iq>

我没有看到 http://jabber.org/protocol/muc 命名空间常量:(

不久后,我尝试使用 strophe.muc.js ,并发送 createInstantRoom 发送请求

<body rid='641581477' xmlns='http://jabber.org/protocol/httpbind' sid='189f4df8'>
      <iq to='tkb-c0695c83280' type='set' xmlns='jabber:client' id='1:sendIQ'>
                <query xmlns='http://jabber.org/protocol/muc#owner'><x xmlns='jabber:x:data' type='submit'/></query>
      </iq>

并回复

<body xmlns="http://jabber.org/protocol/httpbind">
      <iq id="1:sendIQ" xmlns="jabber:client" type="error" from="tkb-c0695c83280" to="message@tkb-c0695c83280/189f4df8">
                <query xmlns="http://jabber.org/protocol/muc#owner">
                          <x xmlns="jabber:x:data" type="submit"></x>
                </query>
                <error code="501" type="cancel">
                          <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></feature-not-implemented>
                </error>
      </iq>

我不知道错误的地方或遗失的地方,请给我一些反馈

1 个答案:

答案 0 :(得分:0)

尝试加入房间而不是即时创建,看看会发生什么。它应该创建房间,如果它不存在,服务器设置为允许它。

conn.muc.join(room, nick, msg_handler_cb, pres_handler_cb, roster_cb, password, history_attrs)
相关问题