NAME
Mojo::Server::Daemon - Async IO HTTP 1.1 And WebSocket Server
SYNOPSIS
use Mojo::Server::Daemon;
my $daemon = Mojo::Server::Daemon->new;
$daemon->listen('http://*:8080');
$daemon->run;
DESCRIPTION
Mojo::Server::Daemon is a full featured async io HTTP 1.1 and WebSocket server with IPv6
, TLS
, epoll
, kqueue
, hot deployment and UNIX domain socket sharing support.
Optional modules IO::KQueue, IO::Epoll, IO::Socket::INET6 and IO::Socket::SSL are supported transparently and used if installed.
ATTRIBUTES
Mojo::Server::Daemon inherits all attributes from Mojo::Server and implements the following new ones.
group
my $group = $daemon->group;
$daemon = $daemon->group('users');
ioloop
my $loop = $daemon->ioloop;
$daemon = $daemon->ioloop(Mojo::IOLoop->new);
keep_alive_timeout
my $keep_alive_timeout = $daemon->keep_alive_timeout;
$daemon = $daemon->keep_alive_timeout(15);
listen
my $listen = $daemon->listen;
$daemon = $daemon->listen('https:localhost:3000,file:/my.sock');
listen_queue_size
my $listen_queue_size = $daemon->listen_queue_zise;
$daemon = $daemon->listen_queue_zise(128);
lock_file
my $lock_file = $daemon->lock_file;
$daemon = $daemon->lock_file('/tmp/mojo_daemon.lock');
max_clients
my $max_clients = $daemon->max_clients;
$daemon = $daemon->max_clients(1000);
max_keep_alive_requests
my $max_keep_alive_requests = $daemon->max_keep_alive_requests;
$daemon = $daemon->max_keep_alive_requests(100);
pid_file
my $pid_file = $daemon->pid_file;
$daemon = $daemon->pid_file('/tmp/mojo_daemon.pid');
silent
my $silent = $daemon->silent;
$daemon = $daemon->silent(1);
user
my $user = $daemon->user;
$daemon = $daemon->user('web');
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.
accept_lock
my $lock = $daemon->accept_lock($blocking);
accept_unlock
$daemon->accept_unlock;
prepare_ioloop
$daemon->prepare_ioloop;
prepare_lock_file
$daemon->prepare_lock_file;
prepare_pid_file
$daemon->prepare_pid_file;
run
$daemon->run;
setuidgid
$daemon->setuidgid;