jabber - 创造空间

时间:2012-11-26 15:00:11

标签: shell centos xmpp ejabberd centos6

我有以下设置:

  • 使用CentOS 6的服务器
  • XMPP服务器(使用ejabber)
  • 浏览器客户端(使用糖果聊天)
  • 聊天功能正常,用户拥有权限等

我需要做的是在用户X想要的时候创建一个房间。如果用户使用独立客户端(如Pidgin),一切正常,但我需要使用基于浏览器的客户端创建一个房间。

问题是我该怎么做?

注意:试图找到支持该功能的客户端 - 失败。

注意2:如果我可以从服务器命令行(shell脚本)执行此操作,这是可以的,因为我可以将ajax请求发送到运行该行的php脚本。 - 我尝试使用ejabberdctl,但我找不到任何功能(找到9999关于用户,服务器等功能,但没有任何关于房间。我想我必须编辑mod_muc选项然后重启服务器,但我'我不确定并且不适合所有用户重启服务器。)

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

请参阅http://xmpp.org/extensions/xep-0045.html#createroom

XEP-0045在XMPP中定义多用户聊天协议。您不需要使用命令行或任何其他带外通信,该协议已经定义并在用户XMPP会话中进行带内工作。这是支持聊天室的任何Jabber客户端实现的。

请注意,协议本身很长,很复杂,并且有许多选项和备选方案(用于配置房间参数,从属关系,管理工作等),但您不必全部使用它们,请参见示例153,刚

<presence from='crone1@shakespeare.lit/desktop'to='coven@chat.shakespeare.lit/firstwitch'>
   <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

足以创造房间“coven”。之后,用户“crone1”将成为该房间的所有者,并将使用缺口“firstwitch”登录房间。