Exemple #1
0
<?php

/**
 * Created by PhpStorm.
 * User: yarullin
 * Date: 25.03.2016
 * Time: 20:26
 */
require 'common.php';
$server = new \Esockets\Server();
$server->open();
if (!$server->open()) {
    echo 'Не удалось запустить сервер!<br>' . PHP_EOL;
    exit;
} else {
    echo 'Сервер слушает сокет<br>' . PHP_EOL;
}
$server->onAccept(function ($peer) {
    /**
     * @var $peer \Esockets\Peer
     */
    \Esockets\error_log(' Принял ' . $peer->getAddress() . ' !');
    $peer->onReceive(function ($msg) use($peer) {
        /**
         * @var $this \Esockets\Peer
         */
        \Esockets\error_log(' Получил от ' . $peer->getAddress() . $msg . ' !');
    });
    $peer->onDisconnect(function () use($peer) {
        \Esockets\error_log('Чувак ' . $peer->getAddress() . ' отсоединиляс от сервера');
    });
<?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
Exemple #3
0
        case E_DEPRECATED:
            // 8192 //
            return 'E_DEPRECATED';
        case E_USER_DEPRECATED:
            // 16384 //
            return 'E_USER_DEPRECATED';
    }
    return "";
}
set_exception_handler(function (Exception $e) {
    error_log(sprintf('Вызвана ошибка %d: %s; %s', $e->getCode(), $e->getMessage(), $e->getTraceAsString()));
});
set_error_handler(function ($errno, $errstr, $errfile, $errline, array $errcontext) {
    error_log(sprintf('[%s]: %s in %s at %d line', error_type($errno), $errstr, $errfile, $errline));
});
$server = new \Esockets\Server();
if (!$server->connect()) {
    echo ' Не удалось запустить сервер! <br>' . PHP_EOL;
    exit;
}
$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 . ' !');
    });