Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-сервер✓TriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог
Документация/Localzet Server

Протоколы и границы сообщений

TCP передаёт поток байтов: один send не обязан соответствовать одному чтению. Codec выделяет сообщения до вызова onMessage.

Обработка сообщенияSocket bytesinput: длина пакетаdecode: объект сообщенияonMessage
SVG ↗
public static function input(string $buffer, ConnectionInterface $connection): int;
public static function decode(string $buffer, ConnectionInterface $connection): mixed;
public static function encode(mixed $data, ConnectionInterface $connection): string;

input() возвращает 0, пока нельзя определить полный пакет, либо его ожидаемую длину. Transport накапливает байты и вызывает decode после получения пакета. Ограничьте длину до выделения больших буферов; на повреждённое framing возвращайте явную ошибку, а не бесконечное ожидание.

CodecГраница сообщения
TextСтрока до \n; завершающие CR/LF удаляются
Frameuint32 network order с длиной payload, затем payload
HttpHTTP-заголовки, Content-Length/chunked и HTTP-семантика
WebsocketHandshake и WebSocket frames

Frame ограничивает заявленный payload 64 MiB; отдельно действует maxPackageSize соединения. UDP сохраняет границу датаграммы, но не предоставляет TCP-гарантий порядка/доставки.

Реализуйте интерфейс и назначьте класс в $server->protocol. В encode формируйте однозначный пакет; в input не считайте неполный заголовок ошибкой. В тестах передавайте одно сообщение по частям и несколько сообщений одним буфером. Raw send обходит encode: используйте его только для уже сформированных wire-данных.