Net::Async::ControlChannel - IO::Async support for ControlChannel protocol
version 0.002
Provides an IO::Async implementation.
See documentation in:
Net::Async::ControlChannel::Server
Net::Async::ControlChannel::Client
Protocol::ControlChannel
#!/usr/bin/env perl use strict; use warnings; use IO::Async::Loop; use Net::Async::ControlChannel::Server; use Net::Async::ControlChannel::Client; use IO::Async::Timer::Periodic; my $loop = IO::Async::Loop->new; my $server = Net::Async::ControlChannel::Server->new( loop => $loop, ); $server->subscribe_to_event( message => sub { my $ev = shift; my ($k, $v, $from) = @_; warn "Server: Had $k => $v from $from\n"; }, connect => sub { my $ev = shift; my ($remote) = @_; warn "Server: Client connects from $remote\n" }, disconnect => sub { my $ev = shift; my ($remote) = @_; warn "Server: Client disconnect from $remote\n" } ); { $loop->add(my $timer = IO::Async::Timer::Periodic->new( interval => 5, on_tick => sub { $server->dispatch('timer.tick' => time) } )); $timer->start; } my $f = $server->start->then(sub { my $server = shift; my $port = $server->port; my $client = Net::Async::ControlChannel::Client->new( loop => $loop, host => $server->host, port => $server->port, ); $client->subscribe_to_event( message => sub { my $ev = shift; my ($k, $v, $from) = @_; warn "Client: Had $k => $v\n"; $client->dispatch('client.reply' => "$k:$v"); } ); $client->start->on_done(sub { my $client = shift; $client->dispatch('client.ready' => time); }); }); $loop->run; warn "finished\n";
Tom Molesworth <cpan@entitymodel.com>
Copyright Tom Molesworth 2012-2013. Licensed under the same terms as Perl itself.
To install Net::Async::ControlChannel, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Async::ControlChannel
CPAN shell
perl -MCPAN -e shell install Net::Async::ControlChannel
For more information on module installation, please visit the detailed CPAN module installation guide.