未实现 Xmpp MUC 功能

Xmpp MUC feature not implemented

本文关键字:功能 MUC Xmpp 实现      更新时间:2023-09-26

我尝试实现"群聊"功能

这是我的部署环境

开火 (3.9.1)斯特罗菲.js (1.1.3)斯特罗菲.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它的功能是创建即时房间来发送请求

<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>

和 IT 响应

<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>

我不知道哪里错了或者漏了什么,请给我一些反馈

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

conn.muc.join(room, nick, msg_handler_cb, pres_handler_cb, roster_cb, password, history_attrs)