use Plack with AnyEvent!
Plack
Async
AnyEvent::
IRC IRC::Client
HTTP
use Plack::Loader;
use AnyEvent;
use AnyEvent::IRC::Client;
my $impl = Plack::Loader->load( 'AnyEvent', port =>
8080 );
my $cv = AnyEvent->condvar;
my $pc = AnyEvent::IRC::Client->new;
# Set and Start IRC Client!
$cv->begin;
$pc->reg_cb(
irc_privmsg => sub {
my ( $name, $msg ) = @_;
$writer->write( $msg->{params}->[1] );
}
);
$pc->send_srv( "JOIN", 'yapc.asia-ja' );
$pc->connect( "irc.freenode.net", 6667,
{ nick => 'nick', user => 'nick', real => 'nick' } );
$cv->end;
# Run plack server
$impl->run(
sub {
my ( $env, $start_response ) = @_;
$writer = $start_response->( 200, [ 'Content-Type'
=> 'text/plain' ] );
$writer->write("IRC HTTP Stream!n");
return [];
}
);
$impl->run_loop;