<?php

/**
 * Created by PhpStorm.
 * User: yarullin
 * Date: 21.06.2016
 * Time: 21:13
 */
require_once '../autoload.php';
// массив конфигурации общий для сервера и клиента, все опции в конфигурации указаны по умолчанию
$config = ['socket_domain' => AF_INET, 'socket_address' => '127.0.0.1', 'socket_port' => '8082', 'socket_reconnect' => false];
$server = new \Esockets\Server($config);
if (!$server->connect()) {
    echo 'Не удалось запустить сервер!';
    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