Документация/Запуск приложения/Workerman

Workerman

Workerman — это высокоэффективный инструмент для построения асинхронных серверов на языке PHP. Он предназначен для работы с вебсокетами, HTTP-серверами, чат-приложениями, API и другими сетевыми приложениями.

Workerman работает без установки дополнительных расширений или зависимостей, так как он полностью реализован на чистом PHP. Это делает его кроссплатформенным и простым в установке.

Стоит отметить, что Workerman поддерживает как HTTP, так и HTTPS, позволяет работать с вебсокетами и легко масштабируется для обработки большого количества соединений одновременно. Благодаря этому он может быть использован для создания realtime приложений, таких как чаты, системы уведомлений и серверы потоковой передачи.

Для правильной работы приложения, запущенного при помощи этой технологии, оно должно быть разработано с поддержкой асинхронного режима.

В асинхронном режиме переиспользуются загруженные конфигурации фреймворка, классы, инициализированные сервисы, кешированные данные, что значительно ускоряет работу.
Но вместе с этим есть характерные особенности, такие как необходимость больше следить за утечками памяти и устранять блокирующие операции, также многие из привычных сторонних библиотек не поддерживают асинхронный режим.
Хранение состояния (state) в логических частях приложения становится нежелательным, особенно, если оно связано с запросом.

Интерфейс RollbackInterface фреймворка предназначен для сброса состояния после каждого асинхронного запроса.

Установить Workerman можно через Composer, как обычную PHP-библиотеку. Подробнее в инструкции по установке сервера.

Под Workerman необходимо будет изменить файл /public/index.php, чтобы фреймворк HLEB2 выполнялся в цикле.
Базовый рабочий пример:

<?php
// File /public/index.php

use Workerman\Worker;
use 
Workerman\Connection\TcpConnection;
use 
Workerman\Protocols\Http\Response;

include 
__DIR__ "/../vendor/autoload.php";

// Framework initialization outside the loop.
$framework = new Hleb\HlebAsyncBootstrap(__DIR__);

$server = new Worker"http://127.0.0.1:2345");

// Set the number of processes used (for example, 4).
$server->count 4;

$server->onMessage = function (TcpConnection $connection$request) use ($framework) {
    
$res $framework->load($request)->getResponse();

    
$connection->send(new Response($res->getStatus(), $res->getHeaders(),  $res->getBody()));
};

Worker::runAll();

Сервер Workerman запускается консольной командой:

$php ./public/index.php start

Согласно указанным настройкам, приложение будет доступно по адресу: http://127.0.0.1:2345

Запуск с помощью Roadrunner Сервер Swoole

Страница создана: @fomiash
К началу страницы