AnyEvent-JSONRPC
view release on metacpan or search on metacpan
lib/AnyEvent/JSONRPC/Server.pm view on Meta::CPAN
package AnyEvent::JSONRPC::Server;
use Moose;
use JSON::XS;
has json => (
is => "ro",
default => sub {
JSON::XS->new->allow_blessed(1)->convert_blessed(1);
},
);
no Moose;
__PACKAGE__->meta->make_immutable;
__END__
=head1 NAME
AnyEvent::JSONRPC::Server - Base class for JSON-RPC Servers
=head1 SYNOPSIS
use AnyEvent::JSONRPC::XXX::Server;
my $server = AnyEvent::JSONRPC::TCP::Server->new( ... );
$server->reg_cb(
echo => sub {
my ($res_cv, @params) = @_;
$res_cv->result(@params);
},
sum => sub {
my ($res_cv, @params) = @_;
$res_cv->result( $params[0] + $params[1] );
},
);
=head1 DESCRIPTION
This is the base class for servers in the L<AnyEvent::JSONRPC> suite of
modules. Current implementations includes a
L<TCP|AnyEvent::JSONRPC::TCP::Server> client and a
L<HTTP|AnyEvent::JSONRPC::HTTP::Server> client. See these for arguments to the
constructors.
=head1 METHOD
=head1 new (%options)
Create server object, start listening socket, and return object.
my $server = AnyEvent::JSONRPC::TCP::Server->new(
port => 4423,
);
Available C<%options> are specific to each implementation
=head2 reg_cb (%callbacks)
Register JSONRPC methods.
$server->reg_cb(
echo => sub {
my ($res_cv, @params) = @_;
$res_cv->result(@params);
},
sum => sub {
my ($res_cv, @params) = @_;
( run in 1.190 second using v1.01-cache-2.11-cpan-39bf76dae61 )