The Broker
package ZeroBlog::Broker;
use 5.014;
use Moose;
use ZMQx::Class;
use AnyEvent;
use Digest::SHA1 qw(sha1_hex);
has 'base_port' => (is=>'ro',isa=>'Int',default=>'3333');
has 'secret' => (is=>'ro',isa=>'Str',required=>1);
has 'receiver' => (is=>'ro',isa=>'ZMQx::Class::Socket',lazy_build=>1,required=>1);
sub _build_receiver {
my $self = shift;
return ZMQx::Class->socket( 'REP', bind => 'tcp://*:'.$self->base_port );
}
has 'publisher' => (is=>'ro',isa=>'ZMQx::Class::Socket',lazy_build=>1,required=>1);
sub _build_publisher {
my $self = shift;
return ZMQx::Class->socket( 'PUB', bind => 'tcp://*:'.($self->base_port+1) );
}