<?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
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 . ' !'); });