AnyEvent-Handle-ZeroMQ
view release on metacpan or search on metacpan
lib/AnyEvent/Handle/ZeroMQ.pm view on Meta::CPAN
=head1 SYNOPSIS
use AnyEvent::Handle::ZeroMQ;
use AE;
use ZeroMQ;
my $ctx = ZeroMQ::Context->new;
my $socket = $ctx->socket(ZMQ_XREP);
$socket->bind('tcp://0:8888');
my $hdl = AnyEvent::Handle::ZeroMQ->new(
socket => $socket,
on_drain => sub { print "the write queue is empty\n" },
on_error => sub { my($error_msg) = @_; ... },
# catch errors when occured in the reading callback
);
# or $hdl->on_drain( sub { ... } );
# or $hdl->on_error( sub { ... } );
$hdl->push_read( sub {
lib/AnyEvent/Handle/ZeroMQ/Dealer.pm view on Meta::CPAN
AnyEvent::Handle::ZeroMQ::Dealer - use AnyEvent::Handle::ZeroMQ as concurrent request-reply pattern
=head1 SYNOPSIS
use AnyEvent::Handle::ZeroMQ::Dealer;
use AE;
use ZeroMQ;
my $ctx = ZeroMQ::Context->new;
my $socket = $ctx->socket(ZMQ_XREQ);
$socket->bind('tcp://0:8888');
my $hdl = AnyEvent::Handle::ZeroMQ::Dealer->new(
socket => $socket,
on_drain => sub { print "the write queue is empty\n" },
);
# or $hdl->on_drain( sub { ... } );
my @request = ...;
$hdl->push_write( \@request, sub {
my($hdl, $reply) = @_;
...
lib/AnyEvent/Handle/ZeroMQ/Router.pm view on Meta::CPAN
AnyEvent::Handle::ZeroMQ::Router - use AnyEvent::Handle::ZeroMQ as concurrent reply-request pattern
=head1 SYNOPSIS
use AnyEvent::Handle::ZeroMQ::Router;
use AE;
use ZeroMQ;
my $ctx = ZeroMQ::Context->new;
my $socket = $ctx->socket(ZMQ_XREP);
$socket->bind('tcp://0:8888');
my $hdl = AnyEvent::Handle::ZeroMQ::Router->new(
socket => $socket,
on_drain => sub { print "the write queue is empty\n" },
);
# or $hdl->on_drain( sub { ... } );
$hdl->push_read( sub {
my($hdl, $request, $cb) = @_;
my @reply = ...
$cb->(\@reply);
( run in 1.189 second using v1.01-cache-2.11-cpan-2398b32b56e )