Проблемы создания, обновления и извлечения данных из Wowza Streaming Engine с использованием PHP REST API? - PullRequest
0 голосов
/ 14 декабря 2018

Я начинаю работать с PHP-библиотекой Wowza, и у меня возникают проблемы с подключением к потоковому движку, который я установил локально.В соответствии с указаниями https://github.com/WowzaMediaSystems/wse-rest-library-php, я установил composer, создал файл конфигурации с моим хостом сервера и настройками аутентификации

wowza_config.php

define("WOWZA_HOST","http://localhost:8087/v2");
define("WOWZA_SERVER_INSTANCE", "_defaultServer_");
define("WOWZA_VHOST_INSTANCE", "_defaultVHost_");
define("WOWZA_USERNAME", "admin");
define("WOWZA_PASSWORD", "admin");

Затем при попытке тестов получить данные изнапример, сервер:

index.php

<?php


require_once ('vendor/autoload.php');
require_once("config/wowza_config.php");


// It is simple to create a setup object for transporting our settings
$setup = new Com\Wowza\Entities\Application\Helpers\Settings();
$setup->setHost(WOWZA_HOST);
$setup->setUsername(WOWZA_USERNAME);
$setup->setPassword(WOWZA_PASSWORD);

$sf = new Com\Wowza\Statistics($setup);
// get stats per application
$wowzaApplication = new Com\Wowza\Application($setup, 'vod');
// get total server stats
$server = new Com\Wowza\Server($setup, 'http://localhost:8087/v2');
$response = $sf->getServerStatistics($server);
// get stats historical for given application
// $response = $sf->getApplicationStatisticsHistory($wowzaApplication);
// $response = $sf->getApplicationStatistics($wowzaApplication);
// get incoming stream stats for given application


var_dump($response);
?>

Я получаю сообщение об ошибке

object(stdClass)#8 (4) { ["message"]=> string(40) "The request requires user authentication" ["code"]=> string(3) "401" ["wowzaServer"]=> string(5) "4.7.7" ["success"]=> bool(false) } 

Я трижды проверил, чтобы подтвердить, что используемые учетные данные совпадают с учетными даннымисерверы, но не могу понять, что я делаю не так

1 Ответ

0 голосов
/ 14 декабря 2018

Замечу одно: в ваших настройках вы не устанавливаете значение «useDigest».Таким образом, по умолчанию используется значение false (см. https://github.com/WowzaMediaSystems/wse-rest-library-php/blob/master/src/Entities/Application/Helpers/Settings.php). Затем, когда вы вызываете getServerStatistics (), в конце концов он вызывает «sendRequest ()» в классе Wowza (см. https://github.com/WowzaMediaSystems/wse-rest-library-php/blob/master/src/Wowza.php).. И в этом классе он добавляет только имя пользователя ипароль к запросу, если для «useDigest» задано значение true в настройках:

if ($this->settings->isUseDigest()) {
   curl_setopt($ch, CURLOPT_USERPWD, $this->settings->getUsername() . ':' . $this->settings->getPassword());
   curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
}

Так что я думаю, что это вообще не привязывает имя пользователя и пароль к вашему запросу.

Поэтому я предлагаювы добавляете

$setup->setUseDigest(true);

к своему коду при настройке объекта «Настройки», и это должно помочь.

...