#!/opt/bin/perl use AnyEvent; use AnyEvent::MP; initialise_node "127.0.0.1:1299"; print "initialized server\n"; my $chatter_port = port; reg $chatter_port, "chatter"; my %client_ports; rcv $chatter_port, join => sub { my ($tag, $client_port) = @_; print "got new client port: $client_port\n"; $client_ports{$client_port} = 1; mon $client_port, sub { my (@reason) = @_; print "client disconnected: " . join (', ', @reason) . "\n"; delete $client_ports{$client_port} }; 0 }, message => sub { my ($tag, $msg) = @_; print "message> $msg\n"; snd $_, message => $msg for keys %client_ports; 0 }; AnyEvent->condvar->recv;