---
name: "JSON::RPC::Server::Daemon"
section: "3pm"
platform: "linux"
package: "libjson-rpc-perl"
version: "0.96-3"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/JSON::RPC::Server::Daemon"
---

# JSON::RPC::Server::Daemon(3pm)

JSON-RPC sever for daemon

## NAME

JSON::RPC::Server::Daemon - JSON-RPC sever for daemon

## SYNOPSIS

```
 # Daemon version
 #--------------------------
 # In your daemon server script
 use JSON::RPC::Server::Daemon;

 JSON::RPC::Server::Daemon->new(LocalPort => 8080);
                          ->dispatch({'/jsonrpc/API' => 'MyApp'})
                          ->handle();

 #--------------------------
 # In your application class
 package MyApp;

 use base qw(JSON::RPC::Procedure); # Perl 5.6 or more than

 sub echo : Public {    # new version style. called by clients
     # first argument is JSON::RPC::Server object.
     return $_[1];
 }

 sub sum : Public(a:num, b:num) { # sets value into object member a, b.
     my ($s, $obj) = @_;
     # return a scalar value or a hashref or an arryaref.
     return $obj->{a} + $obj->{b};
 }

 sub a_private_method : Private {
     # ... can't be called by client
 }

 sub sum_old_style {  # old version style. taken as Public
     my ($s, @arg) = @_;
    return $arg[0] + $arg[1];
 }
```

## DESCRIPTION

This module is for http daemon servers using HTTP::Daemon or HTTP::Daemon::SSL.

## METHODS

They are inherited from the JSON::RPC::Server methods basically. The below methods are implemented in JSON::RPC::Server::Daemon.

- new

  Creates new JSON::RPC::Server::Daemon object. Arguments are passed to HTTP::Daemon or HTTP::Daemon::SSL.

- handle

  Runs server object and returns a response.

- retrieve\_json\_from\_post

  retrieves a JSON request from the body in POST method.

- retrieve\_json\_from\_get

  In the protocol v1.1, 'GET' request method is also allowable. it retrieves a JSON request from the query string in GET method.

- response

  returns a response JSON data to a client.

## SEE ALSO

HTTP::Daemon,

HTTP::Daemon::SSL,

JSON::RPC::Server,

JSON::RPC::Procedure,

JSON,

\<http://json-rpc.org/wd/JSON-RPC-1-1-WD-20060807.html\>,

\<http://json-rpc.org/wiki/specification\>,

## AUTHOR

Makamaka Hannyaharamitu, \<makamaka\[at\]cpan.org\>

## COPYRIGHT AND LICENSE

Copyright 2007-2008 by Makamaka Hannyaharamitu

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
