【问题标题】:Can't perform operation because localhost does not provide a MUC (XEP-45) service无法执行操作,因为 localhost 不提供 MUC (XEP-45) 服务
【发布时间】:2017-09-15 04:58:19
【问题描述】:

我正在尝试通过 Smack 插件使用多用户聊天调用,但收到以下错误。

Can't perform operation because localhost does not provide a MUC (XEP-45) service.

似乎是因为没有在 ejabberd 中启用 mod_muc,但我不知道如何激活它。我以为我在我的 ejabberd.yml 中这样做了。

这是我的 ejabberd.yml mod_muc 部分:

mod_muc:
    ## host: "conference.@HOST@"
    access: muc
    access_create: muc
    access_admin: muc_admin
    history_size: 5
    max_users: 4
    default room options:
        allow_change_subj: true
        allow_private_messages: false
        allow_user_invites: true
        members_by_default: true
        public: true
        public_list: true
        persistent: false

是否有其他人收到未提供 XEP-45 的错误?我该如何解决?

【问题讨论】:

  • 确保在您的ejabberd 配置中启用了mod_muc
  • 我应该设置哪些参数?
  • 我不确定在哪里启用它。

标签: java xmpp ejabberd smack


【解决方案1】:

您正在尝试将 MUC 查询发送到 localhost JID,而您应该发送到 MUC 服务的 JID。取消注释 host: "conference.@HOST@" 并使用 conference.localhost 作为所有 MUC 请求的 JID

【讨论】:

  • 感谢您的回复。我很感激。我应该在 Conference.localhost 周围加上引号还是不加引号?
  • 将您的请求添加到“conference.@HOST@”。表示如果您的主机是 example.com,则将其寻址到 conference.example.com
猜你喜欢
  • 1970-01-01
  • 2014-11-16
  • 2014-07-23
  • 2011-09-18
  • 2012-10-31
  • 1970-01-01
  • 2013-09-17
  • 2019-01-01
  • 1970-01-01
相关资源
最近更新 更多