NAME

Amon2::Plugin::Web::Streaming - streaming support for Amon2

SYNOPSIS

    use Amon2::Lite;

    __PACKAGE__->load_plugin(qw/Web::Streaming/);

    any '/poll' => sub {
        my $c = shift;
        return $c->streaming(sub {
            my $respond = shift;
            ...;
            $respond->write([200, [], ['OK']]);
        });
    };

    any '/poll_json' => sub {
        my $c = shift;
        return $c->streaming_json(sub {
            my $writer = shift;
            ...;
            $writer->write_json(+{ });
            $writer->close;
        });
    };

DESCRIPTION

This is an Amon2 plugin to support streaming.

You MUST use the HTTP server supporting psgi.streaming.

EXPORTED METHODS

$c->streaming($code);

You can return delayed response for PSGI spec.

Argument for $code is $respond. It's same as a argument for PSGI callback.

$c->streaming_json($code);

It's a short hand utility to publish streaming JSON.

The argument is instance of Amon2::Plugin::Web::Streaming::Writer.

Amon2::Plugin::Streaming::Writer METHODS

new

Do not create the instance directly.

$writer->write_json($data)

Write a $data as JSON for the socket.

$writer->close()

Close the socket.

SEE ALSO

PSGI