Net-Async-HTTP-Server

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN


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.

    For accepting HTTP connections via PSGI and Plack, see also
    Plack::Handler::Net::Async::HTTP::Server.

 Metrics

    Since version 0.11.

    This module reports basic metrics about received requests and sent
    responses via Metrics::Any.

EVENTS

 on_request $req

    Invoked when a new HTTP request is received. It will be passed a
    Net::Async::HTTP::Server::Request object.

PARAMETERS

    The following named parameters may be passed to new or configure:

 request_class => STRING

    Gives the name of the class that make_request will construct. This is
    provided as an alternative to overriding the make_request method, for
    the case where no other methods need overriding or other behaviour
    changed.

METHODS

    As a small subclass of IO::Async::Listener, this class does not provide
    many new methods of its own. The superclass provides useful methods to
    control the basic operation of this server.

    Specifically, see the "listen" in IO::Async::Listener method on how to
    actually bind the server to a listening socket to make it accept
    requests.

 make_request

       $request = $server->make_request( @args );

    Invoked by the protocol stream handler to create a new request object
    representing an incoming request. This is provided as a method for
    subclasses to overload, if they wish to represent requests with
    subclasses of the basic request representation.

TODO

      * Don't use HTTP::Message objects as underlying implementation

      * Consider how to do streaming request inbound

      * Lots more testing

AUTHOR

    Paul Evans <leonerd@leonerd.org.uk>



( run in 0.620 second using v1.01-cache-2.11-cpan-140bd7fdf52 )