Skip to content

Instantly share code, notes, and snippets.

@igorw
Last active December 16, 2015 03:09
Show Gist options
  • Save igorw/5368309 to your computer and use it in GitHub Desktop.
Save igorw/5368309 to your computer and use it in GitHub Desktop.
<?php
function handle($server, $events, $loop) {
var_dump('handle');
$data = "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nHi\n";
$conn = stream_socket_accept($server, 0.000001);
$listener = function ($conn, $events, $loop) use (&$listener, &$event, &$data) {
var_dump('handle_write');
$written = fwrite($conn, $data);
$data = substr($data, $written);
if (false === $written) {
var_dump(is_resource($conn));
}
if (0 === strlen($data)) {
event_del($event);
event_free($event);
fclose($conn);
}
};
$event = event_new();
event_set($event, $conn, EV_WRITE | EV_PERSIST, $listener, $loop);
event_base_set($event, $loop);
event_add($event);
}
$loop = event_base_new();
$server = stream_socket_server('tcp://127.0.0.1:1337');
$event = event_new();
event_set($event, $server, EV_READ | EV_PERSIST, 'handle', $loop);
event_base_set($event, $loop);
event_add($event);
event_base_loop($loop);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment