package Service::LiveStreaming; use Moose; extends 'Kamaitachi::Service'; with 'Kamaitachi::Service::AutoConnect', 'Kamaitachi::Service::Broadcaster', 'Kamaitachi::Service::Streaming', 'Kamaitachi::Service::StreamAudienceCounter'; sub broadcast_audience_count { my ($self, $session) = @_; my $count = $self->get_stream_audience_count($session); return unless defined $count; my $packet = $self->broadcast_notify_packet( onMessage => "Audience: $count" ); $self->broadcast_stream_all($session, $packet); } after 'on_invoke_play', 'on_invoke_closeStream' => \&broadcast_audience_count; around on_close => sub { my ($next, $self, $session) = @_; $self->broadcast_audience_count($session); $next->($session); }; __PACKAGE__->meta->make_immutable;