Example #1
0
    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);
}
Example #2
0
    $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();
}