API: localzet\Server

Эта страница описывает API текущей версии исходников. Перед применением проверьте установленную версию пакета; существенные различия сведены в сравнении версий.

Создание listener-а

use localzet\Server;

$server = new Server('http://127.0.0.1:8080');
$server->name = 'api';
$server->count = 4;
Server::runAll();

Конструктор: new Server(?string $socketName = null, array $socketContext = []). Тип URI выбирает TCP/UDP/HTTP/HTTPS/WebSocket transport. TLS параметры передаются как PHP stream context; проверьте их на целевом runtime.

runAll() запускает все зарегистрированные instances и блокирует текущий процесс. В CLI режиме management commands следует вызывать из того же entry file после создания нужных серверов.

Основные свойства

СвойствоНазначение
name, countИмя и число workers
transport, protocol, eventLoopTransport/protocol и event loop configuration
user, groupUnix worker privilege configuration
reusePortОпция listener-а; проверьте поддержку ОС и нужную топологию
maxRequests, maxLifetime, maxMemoryWorker recycle guardrails
maxConnectionsОграничение клиентских соединений worker-а
idleTimeout, frameTimeout, tlsHandshakeTimeoutТаймауты соединения и framing
stopTimeoutЛимит времени graceful stop
logFile, stdoutFile, pidFile, statusFileRuntime paths для диагностики/управления

Фактические значения и их взаимодействие с connection defaults смотрите в исходниках Server.php и ServerAbstract.php. Для production задайте лимиты осознанно: общих значений для всех payload-ов нет.

Callback-и

  • onMessage(TcpConnection $connection, mixed $message) — complete decoded message;
  • onConnect(TcpConnection $connection) и onClose(TcpConnection $connection) — lifecycle соединения;
  • onError(TcpConnection $connection, Throwable $exception) — ошибка соединения/обработки;
  • onBufferFull и onBufferDrain — обратная связь по send buffer;
  • onServerStart, onServerStop, onServerReload, onServerExit — lifecycle server/worker;
  • onWebSocketConnect, onWebSocketConnected, onWebSocketPing, onWebSocketPong, onWebSocketClose — WebSocket lifecycle.

Callback должен быть коротким и не выполнять блокирующие операции в event loop. Для HTTP onMessage получает Request; для raw TCP тип сообщения определяет protocol.

Методы

Публичные методы включают listen(), unlisten(), pauseAccept(), resumeAccept(), getSocketName(), getMainSocket(), getProcessedMessages() и getWorkerUptime(). Статические методы включают getAllServers(), getStatus(), getVersion(), getEventLoop(), stopAll() и reloadAll().

Для администрирования процесса предпочитайте поддерживаемый CLI (status, connections, capabilities, reload, upgrade, restart, stop), а не прямое изменение внутренних статических свойств.