MongooseIM create_room 命令未知

Posted

技术标签:

【中文标题】MongooseIM create_room 命令未知【英文标题】:MongooseIM create_room command not known 【发布时间】:2016-02-22 08:21:20 【问题描述】:

我是 MongooseIM 的新人。 我已经设置了服务器并且能够在两个用户之间交换消息。 现在我正在尝试设置服务器以启用 MUC。

我在 ejabberd.conf 文件中启用了 mod_muc。 在执行 create_room 命令时,错误提示:

mongooseimctl create_room test

command “create_room” not known

有什么我可能会丢失的东西。 我查了ejabberdctl command "create_room" not known,但那里的解决方案没有奏效。有没有特定于 MongooseIM 的东西?

启用的模块:

%%%.   =======
%%%'   MODULES

%%
%% Modules enabled in all ejabberd virtual hosts.
%% For list of possible modules options, check documentation.
%%
modules,
 [
  mod_admin_extra, [submods, [node, accounts, sessions, vcard,
                                roster, last, private, stanza, stats]],
  mod_adhoc, [],
  mod_disco, [],
  mod_last, [],
  mod_stream_management, [
                           % default 100
                           % size of a buffer of unacked messages
                           % buffer_max, 100

                           % default 1 - server sends the ack request after each stanza
                           % ack_freq, 1

                           % default: 600 seconds
                           % resume_timeout, 600
                          ],
  mod_muc, [
             host, "muc.@HOST@",
             access, all,
             access_create, all
            ],
  mod_muc_log,
        [
        outdir, "/tmp/muclogs",
        access_log, muc
        ],
  mod_offline, [access_max_user_messages, max_user_offline_messages],
  mod_privacy, [],
  mod_private, [],
% mod_private, [backend, mnesia],
% mod_private, [backend, odbc],
  mod_register, [
                  %%
                  %% Set the minimum informational entropy for passwords.
                  %%
                  %%password_strength, 32,

                  %%
                  %% After successful registration, the user receives
                  %% a message with this subject and body.
                  %%
                  welcome_message, "",

                  %%
                  %% When a user registers, send a notification to
                  %% these XMPP accounts.
                  %%
                  %registration_watchers, ["admin@localhost"],

                  %%
                  %% Only clients in the server machine can register accounts
                  %%
                  ip_access, [
                               allow, "0.0.0.0/0"],

                  %%
                  %% Local c2s or remote s2s users cannot register accounts
                  %%
                  %%access_from, deny,

                  access, register
                 ],
  mod_roster, [],
  mod_sic, [],
  mod_vcard, [%matches, 1,
%search, true,
%host, directory.@HOST@
],

更新:移至 ejabberd。在 ejabberd 中启用的模块:

%%%   =======
%%%   MODULES

%%
%% Modules enabled in all ejabberd virtual hosts.
%%
modules,
 [
  mod_adhoc,    [],
  mod_announce, [access, announce], % requires mod_adhoc
  mod_caps,     [],
  mod_configure,[], % requires mod_adhoc
  mod_admin_extra, [],
  mod_disco,    [],
  %%mod_echo,   [host, "echo.localhost"],
  mod_irc,      [],
  %% NOTE that mod_http_fileserver must also be enabled in the
  %% "request_handlers" clause of the "ejabberd_http" listener
  %% configuration (see the "LISTENING PORTS" section above).
  %%mod_http_fileserver, [
  %%                       docroot, "/var/www",
  %%                       accesslog, "/var/log/ejabberd/access.log"
  %%                      ],
  mod_last,     [],
  mod_muc,      [
                  %%host, "conference.@HOST@",
                  access, muc,
                  access_create, muc,
                  access_persistent, muc,
                  access_admin, muc_admin,
                  max_users, 500
                 ],
  %%mod_muc_log,[],
  mod_offline,  [access_max_user_messages, max_user_offline_messages],
  mod_privacy,  [],
  mod_private,  [],
  mod_proxy65,  [
                  access, local,
                  shaper, c2s_shaper
                 ],
  mod_pubsub,   [ % requires mod_caps
                  access_createnode, pubsub_createnode,
                  pep_sendlast_offline, false,
                  last_item_cache, false,
                  %%plugins, ["default", "pep"]
                  plugins, ["flat", "hometree", "pep"]  % pep requires mod_caps
                 ],
  mod_register, [
                  %%
                  %% After successful registration, the user receives
                  %% a message with this subject and body.
                  %%
                  welcome_message, "Welcome!",
                                     "Welcome to a Jabber service powered by Debian. "
                                     "For information about Jabber visit "
                                     "http://www.jabber.org",
                  %% Replace it with 'none' if you don't want to send such message:
                  %%welcome_message, none,

                  %%
                  %% When a user registers, send a notification to
                  %% these Jabber accounts.
                  %%
                  %%registration_watchers, ["admin1@example.org"],

                  access, register
                 ],
  mod_roster,   [],
  %%mod_service_log,[],
  %%mod_shared_roster,[],
  mod_stats,    [],
  mod_time,     [],
  mod_vcard,    [],
  mod_version,  []
 ].

【问题讨论】:

【参考方案1】:

正如您引用的链接中提到的,我认为您必须使用 ejabberd 才能从该 API(以及更多)中受益。

【讨论】:

我现在正在使用 ejabberd。 Mod_muc 和 mod_admin_extra : [] 已启用。我仍然没有在 ejabberdctl 中看到 create_room 选项。在 ejabberd 中启用了模块的更新帖子 谢谢!我从源代码构建了 ejabberd 并启用了 mod_muc_admin 并且现在能够创建房间。 :)【参考方案2】:

创建房间需要使用REST API,请查看官方文档-https://mongooseim.readthedocs.io/en/2.0.0/REST-API。另请注意本页末尾的 Swagger Doc

【讨论】:

以上是关于MongooseIM create_room 命令未知的主要内容,如果未能解决你的问题,请参考以下文章

如何将新模块添加到通过ejabberd编写的MongooseIm聊天服务器上

MongooseIM 可以在 PostgreSQL 后端处理多少用户?

为啥 MongooseIM 会在 60 秒后关闭 websocket 连接?

如何在 mongooseim 服务器中从 sql 注册用户名密码字段

MUC 消息的 MongooseIM 推送通知(不是 MUC 灯)

MongooseIM (websockets) 的 Tsung 负载测试