Example #1
0
    if (!$socket) {
        throw new Exception($errStr, $errNo);
    }
    stream_set_blocking($socket, 0);
    $socket = new CoSocket($socket);
    while (true) {
        (yield SystemCall::newTask(handleClient((yield $socket->accept()))));
    }
}
function handleClient($socket)
{
    $data = (yield $socket->read(8192));
    $msg = "Received following request:\n\n{$data}";
    $msgLength = strlen($msg);
    $response = <<<RES
    HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: {$msgLength}
Connection: close


{$msg}
RES;
    (yield $socket->write($response));
    (yield $socket->close());
}
$scheduler = new Scheduler();
$scheduler::$debug = true;
$scheduler->newTask(server(8000));
$scheduler->withIoPoll()->run();