Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除非管理员帐户加入文件室,否则XMPP MUC文件室不可用_Xmpp_Ejabberd_Muc - Fatal编程技术网

除非管理员帐户加入文件室,否则XMPP MUC文件室不可用

除非管理员帐户加入文件室,否则XMPP MUC文件室不可用,xmpp,ejabberd,muc,Xmpp,Ejabberd,Muc,我在使用ejabberd和php库访问xmlrpc时,在正确设置MUC房间时遇到了一些问题。我能够创建房间没有问题,所以这一切似乎都工作 use \GameNet\Jabber\RpcClient; use \GameNet\Jabber\Mixins\UserTrait; $rpc = new RpcClient([ 'server' => $app->config['jabber'].':4560', 'host' => 'mydomain.

我在使用ejabberd和php库访问xmlrpc时,在正确设置MUC房间时遇到了一些问题。我能够创建房间没有问题,所以这一切似乎都工作

use \GameNet\Jabber\RpcClient;
use \GameNet\Jabber\Mixins\UserTrait;
$rpc = new RpcClient([
        'server' => $app->config['jabber'].':4560',
        'host' => 'mydomain.org',
        'debug' => false,
    ]);

$rpc->createRoom($groupname);
$rpc->setRoomOption($groupname,'persistent',true);
$rpc->setRoomOption($groupname,'members_only',true);
$rpc->setRoomOption($groupname,'public',false);
$rpc->setRoomOption($groupname,'moderated',false);
$rpc->setRoomAffiliation($groupname, $user.'@mydomain.org' , 'owner');
我可以看到Ejabberd中的房间,并使用Ejabberd管理员帐户加入MUC房间。然后,我添加另一个用户并作为成员加入:

$rpc->setRoomAffiliation($groupname, 'user2@mydomain.org' , 'member');
使用jabber客户端,user2可以查看房间,但当他们加入时,我从客户端收到一个错误,不是从服务器传递的。无法加入房间:无法进入此房间:您被禁止进入房间

让我困惑的是,如果我启动另一个客户端并使用管理员帐户加入会议室,那么我就可以使用user2加入会议室。如果管理员离开,user2不会被踢出,但是如果user2离开并尝试重新加入,他们会收到错误消息

看来房间的权限不对,但我想不出是什么。似乎会议室需要主持人在场,但会议室没有主持人

我希望该文件室仅由作为成员的附属用户可见/访问

其他信息-这是对会员室从属关系请求的响应-响应值为0是否表示该请求不起作用

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
   <params>
      <param>
         <value>
            <struct>
               <member>
                  <name>res</name>
                  <value>
                     <int>0</int>
                  </value>
               </member>
            </struct>
         </value>
      </param>
   </params>
</methodResponse>