除非管理员帐户加入文件室,否则XMPP MUC文件室不可用
我在使用ejabberd和php库访问xmlrpc时,在正确设置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.
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>