NAME
Hessian::Client - RPC via Hessian with a remote server.
SYNOPSIS
use Hessian::Client;
my $client = Hessian::Client->new(
version => 1,
service => 'http://some.hessian.service/.....'
);
# Alternatively
my $client = Hessian::Client->new(
version => 2,
service => 'http://some.hessian.service/.....'
);
# RPC
my $response = $hessian->remoteCall($arg1, $arg2, $arg3, ...);
DESCRIPTION
The goal of Hessian::Client and all associated classes in this namespace is to provide support for communication via the Hessian protocol in Perl.
Hessian is a binary protocol optimized for communication in situations where it is necessary to preserve bandwidth such as in mobile web services. Due to the concise nature of the API, implementations of the Hessian protocol can be found in several languages including Java, Python, Ruby, Erlang and PHP. For some reason, till now there has been no implementation in Perl.
For a more detailed introduction into the Hessian protocol, see the main project documentation at http://www.caucho.com/resin-3.1/doc/hessian.xtp and http://hessian.caucho.com/doc/hessian-ws.html.
Hessian::Client implements basic RPC for Hessian. Although currently only tested with version 1, communication with version 2.0 servers should also work. I am currently looking for publicly available or otherwise accesible Hessian services for testing.
I probably should note that although the package was submitted under the name Hessian::Client, the real work is actually done in Hessian::Translator and its associated subclasses and roles. In fact, I will most likely change the package name to Hessian::Translator
and submit this as a separate module at some point in the near future.
INTERFACE
new
- Arguments
-
- version
-
1
or2
representing the respective version of Hessian the client should speak. - service
-
A url representing the location of a Hessian server.
BUILD
Not part of the public interface. See Class::Std documentation.
AUTOMETHOD
Not part of the public interface. See Class::Std documentation.
Note: Any method called on the client that is not defined in the public interface (so anything other than "new") will be processed into a Hessian call and posted to the service.
TODO
Testing with a Hessian 2.0 service. If anyone out there would be interested in helping with this I would be very grateful.
Work on messaging. RPC is only part of the Hessian protocol.
Make a POE filter for this perhaps.