Mojo::IOLoop - IO Loop
use Mojo::IOLoop; # Create loop and listen on port 3000 my $loop = Mojo::IOLoop->new; $loop->listen(port => 3000); # Accept connections $loop->accept_cb(sub { my ($self, $id) = @_; # Incoming data $self->read_cb($id => sub { my ($self, $id, $chunk) = @_; # Got some data, time to write $self->writing($id); }); # Ready to write $self->write_cb($id => sub { my ($self, $id) = @_; # Back to reading only $self->not_writing($id); # The loop will take care of buffering for us return 'HTTP/1.1 200 OK'; }); }); # Start and stop loop $loop->start; $loop->stop;
Mojo::IOLoop is a general purpose IO loop for TCP clients and servers, easy to subclass and extend.
Mojo::IOLoop implements the following attributes.
accept_cb
my $cb = $loop->accept_cb; $loop = $loop->accept_cb(sub { ... });
accept_timeout
my $timeout = $loop->accept_timeout; $loop = $loop->accept_timeout(5);
clients
my $clients = $loop->clients; $loop = $loop->clients(25);
connect_timeout
my $timeout = $loop->connect_timeout; $loop = $loop->connect_timeout(5);
connecting
my $connecting = $loop->connecting; $loop = $loop->connecting(25);
lock_cb
my $cb = $loop->lock_cb; $loop = $loop->lock_cb(sub { ... });
max_clients
my $max = $loop->max_clients; $loop = $loop->max_clients(1000);
servers
my $servers = $loop->servers; $loop = $loop->servers(25);
unlock_cb
my $cb = $loop->unlock_cb; $loop = $loop->unlock_cb(sub { ... });
timeout
my $timeout = $loop->timeout; $loop = $loop->timeout(5);
Mojo::IOLoop inherits all methods from Mojo::Base and implements the following new ones.
new
my $loop = Mojo::IOLoop->new;
connect
my $c = $loop->connect( address => '127.0.0.1', port => 3000, cb => sub {...} ); my $c = $loop->connect({ address => '127.0.0.1', port => 3000, cb => sub {...} });
connection_timeout
my $timeout = $loop->connection_timeout($id); $loop = $loop->connection_timeout($id => 45);
drop
$loop = $loop->drop($id);
error_cb
$loop = $loop->error_cb($id => sub { ... });
finish
$loop = $loop->finish($id);
hup_cb
$loop = $loop->hup_cb($id => sub { ... });
listen
$loop->listen(port => 3000); $loop->listen({port => 3000});
local_info
my $info = $loop->local_info($id);
not_writing
$loop->not_writing($id);
read_cb
$loop = $loop->read_cb($id => sub { ... });
remote_info
my $info = $loop->remote_info($id);
start
$loop->start;
stop
$loop->stop;
write_cb
$loop = $loop->write_cb($id => sub { ... });
writing
$loop->writing($id);
To install Mojo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojo
CPAN shell
perl -MCPAN -e shell install Mojo
For more information on module installation, please visit the detailed CPAN module installation guide.