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() . ' отсоединиляс от сервера'); }); }); while (true) { $server->doAccept(); // принимаем новые соединения $server->doReceive(); // принимаем новые сообщения if (time() % 3 === 0) { $server->ping(); } //usleep(10000); // sleep for 10 ms sleep(1); }
$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(); }