server.php 789 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. use React\EventLoop\Loop;
  3. use React\Http\HttpServer;
  4. use React\Socket\SocketServer;
  5. require __DIR__ . '/vendor/autoload.php';
  6. require_once __DIR__.'/app.php';
  7. $server = new HttpServer(requestHandler());
  8. $server->on('error', function (\Throwable $error) {
  9. echo $error->getMessage(), PHP_EOL;
  10. });
  11. $socket = new SocketServer('0.0.0.0:8080');
  12. $server->listen($socket);
  13. echo "React Server running at http://0.0.0.0:8080\n";
  14. echo "EventLoop: ", Loop::get()::class, "\n";
  15. $interrupt = static function () use ($server, $socket, &$interrupt): void {
  16. echo 'Interrupting server', PHP_EOL;
  17. $socket->close();
  18. Loop::removeSignal(SIGINT, $interrupt);
  19. Loop::removeSignal(SIGTERM, $interrupt);
  20. };
  21. Loop::addSignal(SIGINT, $interrupt);
  22. Loop::addSignal(SIGTERM, $interrupt);