Amon2::Plugin::Web::Streaming - streaming support for Amon2
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;
});
};
This is an Amon2 plugin to support streaming.
You MUST use the HTTP server supporting psgi.streaming.
- $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.
- new
- Do not create the instance directly.
- $writer->write_json($data)
- Write a $data as JSON for the socket.
- $writer->close()
- Close the socket.