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();
$client->ping(); usleep($i * 10000); } $client->close(); unset($client); // симулируем множество клиентов $clients = array(); for ($i = 0; $i < 1; $i++) { $client = new Esockets\Client(); if ($client->connect()) { \Esockets\error_log('успешно соединился!'); } $client->onDisconnect(function () { \Esockets\error_log('Меня отсоединили или я сам отсоединился!'); }); $client->onReceive(function ($msg) { \Esockets\error_log('Получил что то: ' . $msg . ' !'); }); $clients[$i] = $client; usleep(100000); } // симулируем большой трафик for ($i = 0; $i < 1; $i++) { foreach ($clients as $j => $client) { $client->send('Hello, I am ' . $j . ' client for ' . $i . ' request! =)'); } } // отключаем всех клиентов foreach ($clients as $client) { $client->close(); }