Проблемы создания, обновления и извлечения данных из Wowza Streaming Engine с использованием PHP REST API?

Я начинаю работать с 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) }

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

0

Решение

Я заметил одну вещь: в ваших настройках вы не устанавливаете значение «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);

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]