为多用户聊天配置 ejabberd?

7 ejabberd xmpp

我正在尝试在 Centos 5 上为 ejabberd 配置多用户聊天。我无法让它工作。

我可以使用 Psi 创建群聊室,但似乎无法从其他帐户加入。

我从 rpm 安装了 ejabberd,并且基本上只是配置了主机名。

用户到用户的即时消息有效,但 MUC 无效。我已经为 SSL 打开了端口 5222 和 5223。MUC 是否运行在不同的端口上?

此外,当我在一个客户端上创建聊天室时,我必须在另一个客户端中使用服务发现,并尝试特定节点 1 到 5。这仅用于小型公司消息传递系统,所以无论如何都可以让 ejabberd 只创建 1 个节点?

0xC*_*22L 5

最好查看您的实际配置,但 MUC 通常必须作为服务启用。服务发现确实是发现MUC服务和浏览聊天室的方式,但客户端应该能够将它们加入书签或将它们放入名册以备下次使用。

无论如何,/etc/ejabberd/ejabberd.cfg您启用了mod_muc吗?如果是这样,您能否粘贴设置。在我的 ejabberd 服务器上,我使用:

  {mod_muc,      [
                  %%{host, "conference.@HOST@"},
                  {access, muc},
                  {access_create, muc},
                  {access_persistent, muc},
                  {access_admin, muc_admin},
                  {history_size, 50},
                  {max_users, 500},
                  {default_room_options,
                        [
                          {allow_change_subj, true},
                          {allow_private_messages, true},
                          {allow_user_invites, true},
                          {anonymous, true},
                          {logging, true},
                          {members_by_default, true},
                          {persistent, true},
                          {public, true},
                          {public_list, false}
                        ]}
                 ]},
  {mod_muc_log,  [
                  {access_log, muc},
                  {dirtype, plain},
                  {dirname, room_jid},
                  {outdir, "/var/www/muclogs"},
                  {timezone, universal},
                  {spam_prevention, true}
                 ]},
Run Code Online (Sandbox Code Playgroud)

在您的访问规则中,您还应该包括:

%% Admins of this server are also admins of MUC service:
{access, muc_admin, [{allow, admin}]}.
%% All users are allowed to use MUC service:
{access, muc, [{allow, all}]}.
Run Code Online (Sandbox Code Playgroud)

这种方式对我来说非常好。当然,您可能不想要日志文件之类的,只需调整相应的设置即可。ejabberd 主页有可用选项的完整文档。