Сервер на ReactPHP

Добавлено: 26/12/2022 06:37 |  Обновлено: 26/12/2022 12:41 |  Добавил: nick |  Просмотры: 1667 Комментарии: 0
Вводная часть
Пример простой реализации сервера на ReactPHP, который в качестве ответа на запрос стримит локальное видео.
Если вы перейдете на сайт ReactPHP — reactphp.org. В самом верху страницы показан пример простого сервера, который слушает 8080 порт и в качестве ответа возвращает строку «Hello World!». Я немного изменил этот пример, чтобы было интереснее. В моем примере, в качестве ответа, сервер транслирует видеофайл.

В первую очередь нужно установить зависимости из библиотеки ReactPHP, используя composer:
composer require react/http react/socket
Далее сохранить код из примера ниже в файл. Также нужно добавить видеофайл в папку с php-скриптом. В моем примере название видео — video.mp4. После чего php-скрипт можно просто запустить в командной строке. Сервер будет работать. Для просмотра видео нужно перейти по адресу: http://127.0.0.1:8080.
<?php

require __DIR__ . '/vendor/autoload.php';

use React\Http\HttpServer;
use React\Http\Message\Response;
use React\Socket\SocketServer;
use Psr\Http\Message\ServerRequestInterface;

$http = new HttpServer(function (ServerRequestInterface $request) {

    return new Response(
        Response::STATUS_OK,
        array(
            'Content-Type' => 'video/mp4'
        ),
        file_get_contents('video.mp4')
    );
});

$socket = new SocketServer('127.0.0.1:8080');
$http->listen($socket);

echo "Сервер запущен по адресу http://127.0.0.1:8080" . PHP_EOL;

Оставьте свой комментарий

Комментариев нет