NAME

XAS::Lib::RPC::JSON::Server - A JSON RPC interface for the XAS environment

SYNOPSIS

my $server = XAS::Lib::RPC::JSON::Server->new(
    -alias   => 'server',
    -port    => '9505',
    -address => 'localhost',
    -logger  => 'logger'
);

DESCRIPTION

This modules implements a simple JSON RPC v2.0 server. It needs to be extended to be usefull. This runs as a POE session. It doesn't support "Notification" calls.

METHODS

new

This initializes the module and starts listening for requests. There are five parameters that can be passed. They are the following:

-alias

The name of the POE session.

-port

The IP port to listen on (default 9505).

-address

The address to bind to (default 127.0.0.1).

-logger

The name of the logger session.

process($packet, $wheel)

This method will attempt to parse the JSON RPC packet and call the correct RPC method. While returning the correct response to the client.

The method called will be prefixed with "do_". So if the client wants to call a "reverse" method, the server will call a "do_reverse" method and return the response.

$packet

The packet received from the socket.

$wheel

The current POE wheel.

log($level, $message)

This method will send log message to the logger session.

$level

The log level.

$message

The message to log.

SEE ALSO

XAS

AUTHOR

Kevin L. Esteb, <kevin@kesteb.us>

COPYRIGHT AND LICENSE

Copyright (C) 2012 by Kevin L. Esteb

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.