2

与 Mumble over ICE 交互是一项非常有趣的任务,几乎没有例子。

我正在尝试在 PHP 中创建用户身份验证器,但设置时遇到了一些问题。我的设置是 PHP 5.5、Murmur 1.3.0 和 ICE 3.5.1

$ICE = Ice_initialize();
    $secret = array('secret'=>'');
    try{
            $base = $ICE->stringToProxy("Meta  -e 1.0:tcp -h 127.0.0.1 -p 6502");
            $meta = $base->ice_checkedCast("::Murmur::Meta")->ice_context($secret);
            $mconfig = $meta->getServer(1)->ice_context($secret)->getTree();

这是我到目前为止设置冰服务器上下文的内容,我想为 Murmur::ServerAuthenticator 接口“authenticate”设置回调

我不确定如何使用 ICE 回调系统对其进行设置,以便能够调用具有身份验证所有详细信息的函数并返回所需的数据。

像这样的东西:

$server->setAuthenticator($auth);
$auth = myownfunc($user, $pw, $certificates, $certhash);
4

1 回答 1

0

我认为身份验证器需要保持 TCP 连接打开,换句话说,它们必须是守护进程,而 PHP 不能(或可能不应该尝试)这样做。

因此,您可以在下面找到的所有身份验证器示例都是用 Python 编写的,您会注意到它们以一种或另一种方式守护进程。

https://github.com/mumble-voip/mumble-scripts/blob/master/Authenticators

令人困惑的事情可能是你是一个客户端(服务器是杂音),但是这个客户端需要在回调/身份验证到达时保持连接)

于 2018-08-22T14:17:51.003 回答