NAME `Net::Async::HTTP::Server' - serve HTTP with `IO::Async' SYNOPSIS use Net::Async::HTTP::Server; use IO::Async::Loop; use HTTP::Response; my $loop = IO::Async::Loop->new(); my $httpserver = Net::Async::HTTP::Server->new( on_request => sub { my $self = shift; my ( $req, $token ) = @_; my $response = HTTP::Response->new( 200 ); $response->add_content( "Hello, world!\n" ); $response->content_type( "text/plain" ); $self->respond( $token, $response ); }, ); $loop->add( $httpserver ); $httpserver->listen( addr => { family => "inet6", socktype => "stream", port => 8080 }, on_listen_error => sub { die "Cannot listen - $_[-1]\n" }, ); $loop->run; DESCRIPTION This module allows a program to respond asynchronously to HTTP requests, as part of a program based on IO::Async. An object in this class listens on a single port and invokes the `on_request' callback or subclass method whenever an HTTP request is received, allowing the program to respond to it. EVENTS on_request $req, $token Invoked when a new HTTP request is received. It will be passed an HTTP::Request object and an opaque token used to respond. This token should be passed to the `respond' method. METHODS $server->respond( $token, $response ) Respond to the request earlier received with the given token, using the given HTTP::Response object. TODO * Streaming/chunked content response API. Likely $self->respond_header( $token, $response ); $self->respond_chunk( $token, $content ); ... $self->respond_eof( $token ); * Consider how to do streaming request inbound * PSGI app container * Lots more testing AUTHOR Paul Evans