XMPP MUC 加入时返回错误代码 404,但它存在

2024-02-25

希望有人可以帮助我理解我在尝试加入已存在的公共 MUC 房间时收到的错误代码 404。

这是 XMPP 序列:

  1. 对房间进行IQ查询

    <iq from='[email protected] /cdn-cgi/l/email-protection/BridgeClient' id='0da67229d8f55e3b' 
    to='[email protected] /cdn-cgi/l/email-protection' type='get'> 
      <query xmlns='http://jabber.org/protocol/disco#info'/>
    </iq>
    
  2. IQ 查询的响应

    <iq from='[email protected] /cdn-cgi/l/email-protection' to='[email protected] /cdn-cgi/l/email-protection/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>
    
  3. 尝试使用状态加入房间

    <presence from='[email protected] /cdn-cgi/l/email-protection/BridgeClient' id='0da67229d8f55e3b' to='[email protected] /cdn-cgi/l/email-protection/bbbb'>
       <x xmlns='http://jabber.org/protocol/muc'/>
    </presence>
    
  4. 加入响应(错误 404)

    <presence from='[email protected] /cdn-cgi/l/email-protection' to='[email protected] /cdn-cgi/l/email-protection/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”。


更新:我正在查看 MUC XEP-0045 文档,发现以下段落解释了我的问题。

http://xmpp.org/extensions/xep-0045.html#createroom-instant http://xmpp.org/extensions/xep-0045.html#createroom-instant

我没有意识到简单地加入房间并没有完成该过程,您仍然必须告诉服务器您要接受即时房间部分的所有默认设置,否则它会保持锁定状态。

作为记录,在创建房间(并成为所有者)后发送下面的代码片段解决了我的问题。

    <iq from='[email protected] /cdn-cgi/l/email-protection/desktop'
        id='create1'
        to='[email protected] /cdn-cgi/l/email-protection'
        type='set'>
        <query xmlns='http://jabber.org/protocol/muc#owner'>
            <x xmlns='jabber:x:data' type='submit'/>
        </query>
    </iq>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XMPP MUC 加入时返回错误代码 404,但它存在 的相关文章

随机推荐

  • 确定客户端绑定的 TCP 端口号

    我创建了一个 TCP 套接字 而不关心要绑定到 socket sin port 0 的端口号 但是稍后如果我想打印客户端的端口号我该怎么做 客户端 C 应用程序 在 Linux 上 创建许多连接到服务器的客户端 为了调试问题 我捕获了 et
  • 如何在 Groovy 中将 String 转换为 GString 并替换占位符?

    我想从数据库读取字符串并通过将其转换为 GString 来替换占位符 我可以用 Eval 来做这个吗 还有其他想法吗 String stringFromDatabase Hello name String name world assert
  • 使用负数缩放值范围

    如果一组值包含负数 如何缩放它们以适应新的范围 例如 我有一组数字 10 9 1 4 10 它们必须缩放到范围 0 1 这样 10 映射到 0 10 映射到 1 任意数字 x 的常规方法是 x from min to max to min
  • 如何使用 Init() 方法在 LibGDX 中重新启动屏幕?

    我在 LibGDX 中创建了一个具有多个屏幕的简单游戏 我想在触摸重启按钮后重新启动某个屏幕 但我不知道该怎么做 我对此做了一些研究 所有答案都导致不在 show 中加载我的资产 而是在我不太熟悉的 init 方法中加载 我想知道如何使用这
  • 如何在Java Springboot中使用jdbcTemplate将整数数组插入postgresql表?

    我在将整数数组插入 Postgresql 表时遇到问题 该怎么办 String sql INSERT INTO draw result id ball numbers balls with mega ball draw dates mega
  • 在一个查询中从三个表获取数据

    我试图同时从三个表中检索数据 这些表格看起来像 类别 id category messageid messages id title message comments id messageid message 我想要得到的是 1 条消息 因
  • VBA 和 IE8 - 输入值并搜索

    我在工作中有一个基于 Intranet 的网站 我想输入 SKU 并使用 VBA 和 IE8 将出现的数据抓取到 Excel 工作表中 目前正在等待访问许可证批准和批准才能访问我们的 IBM as400 服务器 IE8不支持getEleme
  • 如何在heroku中显示来自node.js的所有console.log?

    我已将 Node js 应用程序部署到 Node js 但无法从我的应用程序中看到完整的 console log 语句 我在用 heroku logs 显示了一些日志记录 但看起来不是完整的日志 是否有一个 node js 包可以从已部署的
  • 未添加 WordPress 过滤器

    我有一个使用的插件apply filters像这样 additional fields apply filters attachment meta add fields additional fields 在我的主题中functions p
  • 从 Clojure 中的数据结构实现细节中抽象出来

    我正在 Clojure 中开发一个具有多个子结构的复杂数据结构 我知道我会想要随着时间的推移扩展这个结构 并且有时可能想要更改内部结构而不破坏数据结构的不同用户 例如我可能想将向量更改为哈希图 添加某种索引出于性能原因的结构 或合并 Jav
  • Bootstrap Carousel - 如何在幻灯片之间缓慢淡入淡出

    我正在使用最新的 Bootstrap Carousel 需要在幻灯片之间缓慢淡出 大约 5 秒 我看过很多例子 并尝试实现这个one https stackoverflow com questions 27861435 bootstrap
  • 比较和对比 REST 和 SOAP Web 服务? [复制]

    这个问题在这里已经有答案了 我目前发现类似的情况都是使用互联网协议 HTTP 在消费者和提供商之间交换数据 区别在于 SOAP是一种基于XML的消息协议 而REST是一种架构风格 SOAP 使用 WSDL 进行消费者和提供者之间的通信 而
  • Flutter 使用 Hero 在 Custom Painter 之间转换

    想要我想要 您好 我想在我的应用程序中实现一个基于头脑风暴应用程序的功能 我做什么 这是我的申请 我有一个轮子 它是第一页 当我单击其中一个 球 时 它会打开并显示第二页 我的问题 我不知道如何像示例应用程序那样为过渡设置动画 我必须使用
  • 如何优化 Apache Spark 应用程序中的 shuffle 溢出

    我正在运行一个有 2 个工作人员的 Spark 流应用程序 应用程序具有连接和并集操作 所有批次均已成功完成 但注意到 shuffle 溢出指标与输入数据大小或输出数据大小不一致 溢出内存超过 20 倍 Please find the sp
  • 当我将鼠标悬停在该选取框中排列的图像上时,我可以停止或启动该选取框吗?

    当我将鼠标悬停在该选取框中排列的图像上时 我可以停止或启动该选取框吗 当鼠标悬停在整个选取框 div 上时 选取框会停止 但我希望当鼠标悬停在该选框中的图像上时停止 是的 您可以在鼠标悬停时启动或停止选取框 这里是 html 代码
  • Android ScaleAnimation和TranslateAnimation,如何避免ScaleAnimation移动

    我有一个 AnimationSet 里面有 ScaleAnimation 和 TranslateAnimation 如下所示 翻译动画 TranslateAnimation goTopFromRight new TranslateAnima
  • 如何以编程方式在网站上邀请 Facebook 好友

    我需要的功能是在具有自定义设计的网站页面上向用户显示 Facebook 好友列表 用户可以选择其中的一些好友并发送邀请 在 API v2 0 中 可以通过以下方式获取好友列表 FB api me taggable friends funct
  • 如何使用 php 开发 neteller Direct API?

    我正在网站上开发 neteller direct api 用户可以将资金转入我们的商家帐户 API步骤是 在网站上创建表格 要求用户填写表格 将表单提交到 neteller 安全 URL 该 URL 返回带有响应元素的 XML 页面 我很困
  • 如何将此文本文件格式解析为 CSV 格式?

    我有一个这样布局的文本文件 其中每个字段都是一个新行 id 606149 Category Name Structural Columns Family Name Concrete Square Column Type Name EXIST
  • XMPP MUC 加入时返回错误代码 404,但它存在

    希望有人可以帮助我理解我在尝试加入已存在的公共 MUC 房间时收到的错误代码 404 这是 XMPP 序列 对房间进行IQ查询