EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__constructConstruit un objet EventHttp (le serveur HTTP)

Description

publicEventHttp::__construct(EventBase$base, EventSslContext$ctx = null)

Construit l'objet serveur HTTP.

Liste de paramètres

base

Evénement de base associé.

ctx

L'objet de la classe EventSslContext. Transforme un serveur HTTP en un serveur HTTPS. Cela signifie que si le paramètre ctx est configuré correctement, alors le buffer d'événements sous-jacent ser abasé sur des sockets OpenSSL. Aussi, tout le trafic passera via SSL ou TLS.

Note:

Ce paramètre n'est disponible que si Event a été compilé avec le support d'OpenSSL, et seulement à partir de la version Libevent 2.1.0-alpha ou supérieures.

Historique

VersionDescription
PECL event 1.9.0 Ajout du support d'OpenSSL (ctx).

Exemples

Exemple #1 Serveur HTTP simple

<?php


function _http_dump($req, $data) {
static
$counter = 0;
static
$max_requests = 2;

if (++
$counter >= $max_requests) {
echo
"Counter reached max requests $max_requests. Exiting\n";
exit();
}

echo
__METHOD__, " called\n";
echo
"request:"; var_dump($req);
echo
"data:"; var_dump($data);

echo
"\n===== DUMP =====\n";
echo
"Command:", $req->getCommand(), PHP_EOL;
echo
"URI:", $req->getUri(), PHP_EOL;
echo
"Input headers:"; var_dump($req->getInputHeaders());
echo
"Output headers:"; var_dump($req->getOutputHeaders());

echo
"\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo
"OK\n";

echo
"\n >> Reading input buffer ...\n";
$buf = $req->getInputBuffer();
while (
$s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo
$s, PHP_EOL;
}
echo
"No more data in the buffer\n";
}

function
_http_about($req) {
echo
__METHOD__, PHP_EOL;
echo
"URI: ", $req->getUri(), PHP_EOL;
echo
"\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo
"OK\n";
}

function
_http_default($req, $data) {
echo
__METHOD__, PHP_EOL;
echo
"URI: ", $req->getUri(), PHP_EOL;
echo
"\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo
"OK\n";
}

$port = 8010;
if (
$argc > 1) {
$port = (int) $argv[1];
}
if (
$port <= 0 || $port > 65535) {
exit(
"Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Résultat de l'exemple ci-dessus est similaire à :

a=12 HTTP/1.0 200 OK Content-Type: text/html; charset=ISO-8859-1 Connection: close HTTP/1.0 200 OK Content-Type: text/html; charset=ISO-8859-1 Connection: close (press Enter) HTTP/1.0 200 OK Content-Type: text/html; charset=ISO-8859-1 Connection: close
To Top