exit;
}
$client = new Esockets\Client($config);
// передаем конфигурацию, такую же, как для сервера
if ($client->connect()) {
    error_log('успешно соединился!');
}
// назначаем обработчик для новых входящих соединений. при соединении клиента к серверу будет вызван переданный обработчик
$server->onConnectPeer(function ($peer) {
    /**
     * @var $peer \Esockets\Peer
     */
    error_log('Принял входящее соединение ' . $peer->getAddress() . ' !');
    // назначаем обработчик для чтения данных от присоединившегося клиента. при получении данных от подключенного клиента будет вызван переданный обработчик
    $peer->onRead(function ($msg) use($peer) {
        /**
         * @var $this \Esockets\Peer
         */
        error_log('Получил сообщение от ' . $peer->getAddress() . ' ' . $msg . ' !');
    });
    // назначаем обработчик для отсоединения клиента от сервера. этот обработчик будет вызван при отсоединении клиента
    $peer->onDisconnect(function () use($peer) {
        error_log('Клиент ' . $peer->getAddress() . ' отсоединился от сервера');
    });
});
// прослушиваем входящие соединения
$server->listen();
// метод запускает обнаружение новых входящих соединений на сервере
$client->send('HELLO WORLD!');
// метод возвращает true в случае успешной отправки, иначе false
$server->read();