Mojo::Server::Daemon(3User Contributed Perl DocumentatMojo::Server::Daemon(3p)



NAME
       Mojo::Server::Daemon - Async IO HTTP 1.1 And WebSocket Server

SYNOPSIS
         use Mojo::Server::Daemon;

         my $daemon = Mojo::Server::Daemon->new(listen => ['http://*:8080']);
         $daemon->on_handler(sub {
           my ($self, $tx) = @_;

           # Request
           my $method = $tx->req->method;
           my $path   = $tx->req->url->path;

           # Response
           $tx->res->code(200);
           $tx->res->headers->content_type('text/plain');
           $tx->res->body("$method request for $path!");

           # Resume transaction
           $tx->resume;
         });
         $daemon->run;

DESCRIPTION
       Mojo::Server::Daemon is a full featured async io HTTP 1.1 and WebSocket
       server with "IPv6", "TLS", "Bonjour", "epoll" and "kqueue" support.

       Optional modules IO::KQueue, IO::Epoll, IO::Socket::IP, IO::Socket::SSL
       and Net::Rendezvous::Publish are supported transparently and used if
       installed.

       See Mojolicious::Guides::Cookbook for deployment recipes.

ATTRIBUTES
       Mojo::Server::Daemon inherits all attributes from Mojo::Server and
       implements the following new ones.

   "backlog"
         my $backlog = $daemon->backlog;
         $daemon     = $daemon->backlog(128);

       Listen backlog size, defaults to "SOMAXCONN".

   "group"
         my $group = $daemon->group;
         $daemon   = $daemon->group('users');

       Group for server process.

   "ioloop"
         my $loop = $daemon->ioloop;
         $daemon  = $daemon->ioloop(Mojo::IOLoop->new);

       Event loop for server IO, defaults to the global Mojo::IOLoop
       singleton.

   "keep_alive_timeout"
         my $keep_alive_timeout = $daemon->keep_alive_timeout;
         $daemon                = $daemon->keep_alive_timeout(15);

       Timeout for keep alive connections in seconds, defaults to 5.

   "listen"
         my $listen = $daemon->listen;
         $daemon    = $daemon->listen(['https://localhost:3000']);

       List of ports and files to listen on, defaults to "http://*:3000".

   "max_clients"
         my $max_clients = $daemon->max_clients;
         $daemon         = $daemon->max_clients(1000);

       Maximum number of parallel client connections, defaults to 1000.

   "max_requests"
         my $max_requests = $daemon->max_requests;
         $daemon          = $daemon->max_requests(100);

       Maximum number of keep alive requests per connection, defaults to 25.

   "silent"
         my $silent = $daemon->silent;
         $daemon    = $daemon->silent(1);

       Disable console messages.

   "user"
         my $user = $daemon->user;
         $daemon  = $daemon->user('web');

       User for the server process.

   "websocket_timeout"
         my $websocket_timeout = $server->websocket_timeout;
         $server               = $server->websocket_timeout(300);

       Timeout in seconds for WebSockets to be idle, defaults to 300.

METHODS
       Mojo::Server::Daemon inherits all methods from Mojo::Server and
       implements the following new ones.

   "prepare_ioloop"
         $daemon->prepare_ioloop;

       Prepare event loop.

   "run"
         $daemon->run;

       Start server.

   "setuidgid"
         $daemon->setuidgid;

       Set user and group for process.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.



perl v5.12.2                      2011-02-28          Mojo::Server::Daemon(3p)
