Ejemplo n.º 1
0
{
    return function ($request, $response) use($gifServer) {
        $gifServer($request, $response);
        $gifServer->addFrame(createGifFrame(['']));
    };
}
$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$http = new React\Http\Server($socket);
$gifServer = new React\Gifsocket\Server($loop);
$messages = [];
$addMessage = function ($message) use($gifServer, &$messages) {
    $messages[] = $message;
    if (count($messages) > 18) {
        $messages = array_slice($messages, count($messages) - 18);
    }
    $frame = createGifFrame($messages);
    $gifServer->addFrame($frame);
};
$stdin = new React\Stream\Stream(STDIN, $loop);
$stdin->on('data', function ($data) use($addMessage) {
    $messages = explode("\n", trim($data));
    foreach ($messages as $message) {
        $addMessage($message);
    }
});
$router = new React\Gifsocket\Router(['/' => sendEmptyFrameAfter($gifServer)]);
$http->on('request', $router);
echo "Webserver running on localhost:8080\n";
$socket->listen(8080);
$loop->run();