API: TcpConnection
localzet\Server\Connection\TcpConnection представляет accepted TCP client connection. Встроенные HTTP и WebSocket protocol передают через onMessage уже декодированное сообщение; пользовательское приложение не должно самостоятельно трактовать границы read().
Передача и завершение
send(mixed $data, bool $raw = false): bool|nullкодирует сообщение текущим protocol, еслиrawне задан; результат может сообщать, что данные буферизованы или соединение недоступно — обрабатывайте контракт метода.close(mixed $data = null, bool $raw = false): voidинициирует protocol-aware close, где он поддержан.end(mixed $data = null, bool $raw = false): voidзавершает отправку и закрывает соединение после flush.destroy(): voidосвобождает транспорт немедленно; обычно предпочитайте lifecycle методы.
Для WebSocket завершения используйте его close semantics, а не произвольный TCP payload.
Буферы и чтение
getSendBufferQueueSize() и getRecvBufferQueueSize() дают диагностические размеры очередей. pauseRecv()/resumeRecv() управляют приёмом, pipe() передаёт данные между соединениями с backpressure. maxSendBufferSize, maxPackageSize и lingerTimeout задают per-connection пределы/поведение.
События onBufferFull и onBufferDrain позволяют приложению замедлить producer-а и продолжить после освобождения очереди. Не накапливайте неограниченный пользовательский буфер поверх send queue.
Адреса и состояние
Используйте getRemoteIp(), getRemotePort(), getRemoteAddress(), getLocalIp(), getLocalPort() и getLocalAddress(). getStatus() возвращает состояние соединения. setIdleTimeout() и setFrameTimeout() меняют таймауты текущего соединения.
context — прикладное хранилище состояния соединения. Оно принадлежит текущему worker и не разделяется с другими процессами. Удаляйте из него ссылки на крупные ресурсы при закрытии.
Callback-и соединения
На instance можно задать onMessage, onClose, onError, onBufferFull и onBufferDrain. WebSocket connection дополнительно имеет callbacks handshake, ping/pong и close. Проверяйте типы и сигнатуры в исходном TcpConnection.php/ConnectionInterface.php; эти классы — актуальный контракт текущей версии 7.x.
Асинхронный клиент
AsyncTcpConnection создаёт исходящее TCP/TLS/WebSocket соединение через event loop, поддерживает connect timeout и явный reconnect. Обработайте onConnect, onMessage, onClose и onError; отменяйте reconnect и освобождайте соединение при shutdown. Прокси SOCKS5/HTTP требует отдельной конфигурации и проверки доверия к proxy.

