AnyEvent-JSONRPC
view release on metacpan or search on metacpan
lib/AnyEvent/JSONRPC/HTTP/Server.pm view on Meta::CPAN
Bind address. Default to 'localhost'.
If you want to use unix socket, this option should be set to "unix/"
=item port => 'Int | Str'
Listening port. Default to '8080'.
=back
=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) = @_;
lib/AnyEvent/JSONRPC/Server.pm view on Meta::CPAN
=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) = @_;
lib/AnyEvent/JSONRPC/TCP/Client.pm view on Meta::CPAN
has _next_id => (
is => 'ro',
isa => 'CodeRef',
lazy => 1,
default => sub {
my $id = 0;
sub { ++$id };
},
);
has _callbacks => (
is => 'ro',
isa => 'HashRef',
lazy => 1,
default => sub { {} },
);
has _connection_guard => (
is => 'rw',
isa => 'Object',
);
lib/AnyEvent/JSONRPC/TCP/Client.pm view on Meta::CPAN
);
if ($self->handler) {
my $json = $request->deflate;
$self->handler->push_write( json => $json );
}
else {
push @{ $self->_request_pool }, $request;
}
$self->_callbacks->{ $request->id } = AnyEvent->condvar;
}
sub _handle_response {
my ($self, $json) = @_;
my $response = JSON::RPC::Common::Procedure::Return->inflate( $json );
my $d = delete $self->_callbacks->{ $response->id };
unless ($d) {
warn q/Invalid response from server/;
return;
}
if (my $error = $response->error) {
$d->croak($error);
}
else {
$d->send($response->result);
lib/AnyEvent/JSONRPC/TCP/Server.pm view on Meta::CPAN
=item on_eof => $cb->($handle)
EOF callback. same as L<AnyEvent::Handle>'s on_eof callback.
=item handler_options => 'HashRef'
Hashref options of L<AnyEvent::Handle> that is used to handle client connections.
=back
=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 0.372 second using v1.01-cache-2.11-cpan-d6f9594c0a5 )