note 99127 added to libevent.examples
| From: | Alexis at osu1 dot php dot net | Date: | Thu, 29 Jul 2010 12:23:13 +0000 |
| Subject: | note 99127 added to libevent.examples | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-171201@lists.php.net to get a copy of this message | ||
Server example:
<?php
$socket = stream_socket_server ('tcp://0.0.0.0:2000', $errno, $errstr);
stream_set_blocking($socket, 0);
$base = event_base_new();
$event = event_new();
event_set($event, $socket, EV_READ | EV_PERSIST, 'ev_accept', $base);
event_base_set($event, $base);
event_add($event);
event_base_loop($base);
$GLOBALS['connections'] = array();
$GLOBALS['buffers'] = array();
function ev_accept($socket, $flag, $base) {
static $id = 0;
$connection = stream_socket_accept($socket);
stream_set_blocking($connection, 0);
$id += 1;
$buffer = event_buffer_new($connection, 'ev_read', NULL, 'ev_error', $id);
event_buffer_base_set($buffer, $base);
event_buffer_timeout_set($buffer, 30, 30);
event_buffer_watermark_set($buffer, EV_READ, 0, 0xffffff);
event_buffer_priority_set($buffer, 10);
event_buffer_enable($buffer, EV_READ | EV_PERSIST);
// we need to save both buffer and connection outside
$GLOBALS['connections'][$id] = $connection;
$GLOBALS['buffers'][$id] = $buffer;
}
function ev_error($buffer, $error, $id) {
event_buffer_disable($GLOBALS['buffers'][$id], EV_READ | EV_WRITE);
event_buffer_free($GLOBALS['buffers'][$id]);
fclose($GLOBALS['connections'][$id]);
unset($GLOBALS['buffers'][$id], $GLOBALS['connections'][$id]);
}
function ev_read($buffer, $id) {
while ($read = event_buffer_read($buffer, 256)) {
var_dump($read);
}
}
?>
----
Server IP: 69.147.83.197
Probable Submitter: 220.102.56.29
----
Manual Page -- http://www.php.net/manual/en/libevent.examples.php
Edit -- https://master.php.net/note/edit/99127
Del: integrated -- https://master.php.net/note/delete/99127/integrated
Del: useless -- https://master.php.net/note/delete/99127/useless
Del: bad code -- https://master.php.net/note/delete/99127/bad+code
Del: spam -- https://master.php.net/note/delete/99127/spam
Del: non-english -- https://master.php.net/note/delete/99127/non-english
Del: in docs -- https://master.php.net/note/delete/99127/in+docs
Del: other reasons-- https://master.php.net/note/delete/99127
Reject -- https://master.php.net/note/reject/99127
Search -- https://master.php.net/manage/user-notes.php