The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::PNGCast - in-process server to display a screencast

DESCRIPTION

Use this web application to display the screencast of a (headless) web browser or other arbitrary PNG data sent to it via websocket.

The synopsis shows how to use this plugin to display a Chrome screencast using WWW::Mechanize::Chrome.

SYNOPSIS

    use Mojolicious::Lite;
    use Mojo::Server::Daemon;
    use WWW::Mechanize::Chrome;
    plugin 'PNGCast';

    my $daemon_url = 'http://localhost:3000';

    my $ws_monitor = Mojo::Server::Daemon->new(app => app());
    $ws_monitor->listen([$daemon_url]);
    $ws_monitor->start;

    my $mech = WWW::Mechanize::Chrome->new( headless => 1 );
    $mech->setScreenFrameCallback( sub {
        app->send_frame( $_[1]->{data} )}
    );

    print "Watch progress at $daemon_url\n";
    sleep 5;

    $mech->get('https://example.com');

HELPERS

app->send_frame

    app->send_frame( $png_data );

Sends a frame to all connected clients. If a fresh client connects, it will receive the last frame handed to send_frame.

INTERNAL METHODS

$plugin->notify_clients

  $plugin->notify_clients( $PNGframe )

Notify all connected clients that they should display the new frame.

EXPORTED HTTP ENDPOINTS

This plugin makes the following endpoints available

  • / - the index page

    This is an HTML page that opens a websocket to the webserver and listens for PNG images coming in over that websocket

  • /ws - the websocket

    This is a websocket

  • /stop - stop the application

    This stops the complete Mojolicious application

REPOSITORY

The public repository of this module is https://github.com/Corion/Mojolicious-Plugin-PNGCast.

SUPPORT

The public support forum of this module is https://perlmonks.org/.

BUG TRACKER

Please report bugs in this module via the RT CPAN bug queue at https://rt.cpan.org/Public/Dist/Display.html?Name=Mojolicious-Plugin-PNGCast or via mail to Mojolicious-Plugin-PNGCast-Bugs@rt.cpan.org.

AUTHOR

Max Maischein corion@cpan.org

COPYRIGHT (c)

Copyright 2010-2018 by Max Maischein corion@cpan.org.

LICENSE

This module is released under the same terms as Perl itself.