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

NAME

Pcore::RPC

SYNOPSIS

    # client
    my $RPC;

    P->pm->run_rpc(
        'RPC',
        workers   => 1,
        token     => undef,
        buildargs => {},
        on_ready  => sub ($rpc) {
            $RPC = $rpc;

            $RPC->connect_rpc(
                token          => undef,
                listen_events  => ['APP.EV1'],
                forward_events => ['APP.EV2'],
                on_connect     => sub ($rpc) {
                    $rpc->rpc_call(
                        'test', 123,
                        sub {
                            say dump \@_;

                            # terminate RPC
                            P->fire_event('RPC.TERM');

                            return;
                        }
                    );

                    return;
                }
            );

            return;
        },
    );

    # server
    package RPC;

    use Pcore -rpc, -const, -class;

    const our $RPC_LISTEN_EVENTS  => ['APP.EV2'];
    const our $RPC_FORWARD_EVENTS => ['APP.EV1'];

    sub BUILD ( $self, $args ) {
        return;
    }

    sub RPC_ON_CONNECT ( $self, $ws ) {
        return;
    }

    sub RPC_ON_DISCONNECT ( $self, $ws, $status ) {
        return;
    }

    sub RPC_ON_TERM ($self) {
        return;
    }

    sub API_test ( $self, $req, $args ) {
        $req->( 200, time );

        return;
    }

    1;

DESCRIPTION

ATTRIBUTES

METHODS

SEE ALSO