NAME
JSON::RPC2::AnyEvent::Client - Nonblocking JSON RPC2 client with method mapping.
SYNOPSIS
use JSON::RPC2::AnyEvent::Client;
# create connection
my $rpc = JSON::RPC2::AnyEvent::Client->new(
host => "127.0.0.1",
port => 5555,
);
# call
$rpc->rpcfn( 1, 'two', 3, sub{
my ( $failed, $result, $error ) = @_;
print Dumper $result if ! $failed && ! $error;
})
# call remote function with some configure
$rpc->service('agent')->listed()->remote_function( 'param1', 'param2', sub{
my ( $failed, $result, $error ) = @_;
})
# more arguments desctibed below
my $rpc = JSON::RPC2::AnyEvent::Client->new(
host => "127.0.0.1",
port => 5555,
service => 'agent',
call => 'listed' || 'named',
service => '_service', # rename any this module methods
);
# destroy rpc connection when done
$rpc->destroy;
DESCRIPTION
JSON::RPC2::AnyEvent::Client is JSON RPC2 client, currently with tcp transport, handled by AnyEvent::Handle, and remote functions mapping to local client functions, and based on JSON RPC2 implementation JSON::RPC2::Client.
METHODS
- $rpc = new JSON::RPC2::AnyEvent::Client host=>'example.com', ...
-
The constructor supports these arguments (all as
key => value
pairs).- host => 'example.com'
-
The hostname or ip address.
- port => 5555
-
The tcp port number
- service => 'agent'
-
Set the service name, it will be prefix before remote function name with dot as separator. So if service is 'agent' then call like $rpc->remote_fn(), then
agent.remote_fn
will be called - call => 'listed' || 'named'
-
Type of RPC call, default listed.
- any_method_name => 'remap_method_name'
-
If remote server have method with same name as in this module, it is possible to rename this module
method_name
to another nameremap_method_name
- service ( "service_name" )
-
Set remote service name, if undef - then no service name used.
- listed
-
RPC listed call type will be used.
- named
-
RPC named call type will be used.
- any other name ( $param1, $param2, ..., $cb )
-
Any method name will called via RPC on remote server. Last param must be event handler cb(). There is params of cb ( $failed, $result, $error ); Where $result is server responce, valid only when there is no fail or error.
DEPENDENCIES
L<JSON::XS>
L<AnyEvent::Handle>;
L<JSON::RPC2::Client>;
LICENSE
Copyright (C) Serguei Okladnikov.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Serguei Okladnikov < oklas@cpan.org >