java - 无法执行操作,因为 localhost 不提供 MUC (XEP-45) 服务

标签 java xmpp ejabberd smack

我尝试通过 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 notprovided 错误吗?我该如何修复它?

最佳答案

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

关于java - 无法执行操作,因为 localhost 不提供 MUC (XEP-45) 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46231945/

相关文章:

android - 如何在整个应用程序中使用相同的 XMPP 连接

sockets - 如何通过 CFSocketNativeHandle 使用 CFStreamCreatePairWithSocket

Java 套接字在断开连接时不会超时

php - XMPP 和 Strope

java - Discord Bot 不会删除消息(带有 JDA API 的 Eclipse IDE Java)

java - 迭代HashMap并获取Object中值的 "Lowest"Integer

java - Android 卡 View 通过拖放更改位置

java - 有没有办法从 ArrayList 中挑选出特定元素?

mysql - 通过 mod_archive_odbc 的 native 驱动程序将 ejabberd 连接到 MySQL

centos7 - 使用 LetsEncrypt 证书进行 Ejabbed