配置 ejabberd 进行多用户聊天?

配置 ejabberd 进行多用户聊天?

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

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

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

用户对用户即时消息可以正常使用,但 MUC 不行。我已为 SSL 打开端口 5222 和 5223。MUC 是否通过其他端口运行?

另外,当我在一个客户端上创建聊天室时,我必须在另一个客户端中使用服务发现,并尝试特定节点 1 到 5。这只会用于小型企业消息传递系统,那么有没有办法让 ejabberd 只创建 1 个节点?

答案1

最好查看您的实际配置,但 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}
                 ]},

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

%% 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}]}.

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

相关内容