NAME
MojoX::NetstringStream - Turn a (tcp) stream into a NetstringStream
SYNOPSIS
use MojoX::NetstringStream;
my $clientid = Mojo::IOLoop->client({
port => $port,
} => sub {
my ($loop, $err, $stream) = @_;
my $ns = MojoX::NetstringStream->new(stream => $stream);
$ns->on(chunk => sub {
my ($ns, $chunk) = @_;
say 'got chunk: ', $chunk;
...
});
$ns->on(close => sub {
say 'got close';
...
});
});
DESCRIPTION
MojoX::NetstringStream is a wrapper around Mojo::IOLoop::Stream that adds framing using the netstring encoding.
ATTRIBUTES
stream
The underlying Mojo::IOLoop stream to use for reading and writing
debug
Enables debugging
maxsize
Maximum size of the accepted netstring frames, if set. A nserr event is raised when a oversized frame is received.
Default: none
EVENTS
MojoX::NetstringStream inherits all events from Mojo::EventEmitter and can emit the following new ones.
chunk
$ns->on(chunk => sub {
my ($ns, $chunk) = @_;
...
});
Emitted for every (full) netstring received on the underlying stream.
close
$ns->on(close => sub {
my $ns = shift;
...
});
Emitted if the underlying stream gets closed.
nserr
$ns->on(nserr => sub {
my ($ns, $err) = @_;
...
});
Emitted if there was some kind of framing error, currenty either a missing ',' at the end or a oversized frame.
ATTRIBUTES
MojoX::NetstringStream implements the following attributes.
stream
my $stream = $ns->stream;
The underlying Mojo::IOLoop::Stream-like stream
debug
$ls->debug = 1;
Enables or disables debugging output.
METHODS
MojoX::NetstringStream inherits all methods from Mojo::EventEmitter and implements the following new ones.
new
my $ns = MojoX::NetstringStream->new(
stream => $stream,
debug => $debug,
);
Construct a new MojoX::NetstringStream object. The stream argument must behave like a Mojo::IOLoop::Stream object. The debug argument is optional and just sets the debug attribute.
write
$ns->write($chunk);
Writes chunk to the underlying stream as a netstring.
SEE ALSO
Mojo::IOLoop, Mojo::IOLoop::Stream, http://mojolicious.org: the Mojolicious Web framework
https://cr.yp.to/proto/netstrings.txt: netstrings specification.
ACKNOWLEDGEMENT
This software has been developed with support from STRATO. In German: Diese Software wurde mit Unterstützung von STRATO entwickelt.
AUTHORS
Wieger Opmeer <wiegerop@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Wieger Opmeer.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.