Localzet Server and Cluster documentation

Socket.IO: начало работы

Socket.IO добавляет Engine.IO transport и event API поверх Localzet Server 7. Установите пакет:

composer config repositories.localzet-socketio vcs https://github.com/localzet/SocketIO
composer require localzet/socketio:dev-main

Минимальный сервер ниже слушает только loopback, задаёт разрешённый browser origin и возвращает событие pong:

<?php

use localzet\Server;
use localzet\SocketIO\SocketIO;

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

$server = new Server('socketio://127.0.0.1:2020');
$io = new SocketIO();
$io->origins('https://app.example.org');
$io->attach($server);

$io->on('connection', static function ($socket): void {
    $socket->on('ping', static function ($data) use ($socket): void {
        $socket->emit('pong', $data);
    });
});

Server::runAll();

Запустите как Localzet Server entrypoint: php socketio.php start. Перед подключением браузера проверьте актуальную совместимость используемого socket.io-client: текущие регрессии не подтверждают поддержку всех версий протокола, polling и WebSocket upgrade.

Параметр origin ограничивает часть браузерных источников, но не заменяет аутентификацию и авторизацию: отсутствующий/нулевой Origin не является доказательством доверия. Проверяйте пользователя и права в приложении, задайте список origins явно и ограничьте listener ingress ACL. Межпроцессные комнаты требуют совместимого adapter; см. API и ограничения.