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