The Broker
sub loop { my $self = shift; my $receiver = $self->receiver; my $publisher = $self->publisher; my $watcher = $receiver->anyevent_watcher( sub { while ( my $msg = $receiver->receive ) { my ($token, $message) = @$msg; say "got ".join(' - ',@$msg); my $check_token = sha1_hex($message,$self->secret); if ($check_token eq $token) { $receiver->send('ok'); $publisher->send($message); } else { $receiver->send('bad token, message rejected'); } } }); AnyEvent->condvar->recv; }