POE::Component::IKC::Client - POE Inter-Kernel Communication client
use POE; use POE::Component::IKC::Client; create_ikc_client( ip=>$ip, port=>$port, name=>"Client$$", on_connect=>\&create_sessions, subscribe=>[qw(poe:/*/timserver)],); ... $poe_kernel->run();
This module implements an POE IKC client. An IKC client attempts to connect to a IKC server. If successful, it negociates certain connection parameters. After this, the POE server and client are pretty much identical.
create_ikc_client
This function initiates all the work of connecting to an IKC server. Parameters are :
ip
Address to connect to. Can be a doted-quad ('127.0.0.1') or a host name ('foo.pied.nu'). Defaults to '127.0.0.1', aka INADDR_LOOPBACK.
port
Port to connect to. Can be numeric (80) or a service ('http').
unix
Path to unix-domain socket that the server is listening on.
name
Local kernel name. This is how we shall "advertise" ourself to foreign kernels. It acts as a "kernel alias". This parameter is temporary, pending the addition of true kernel names in the POE core.
aliases
Arrayref of even more aliases for this kernel. Fun Fun Fun!
on_connect
Code ref that is called when the connection has been made to the foreign kernel. Normaly, you would use this to start the sessions that post events to foreign kernels. DEPRECATED. Please use the IKC/monitor stuff. See POE::Component::IKC::Responder.
subscribe
Array ref of specifiers (either foreign sessions, or foreign states) that you want to subscribe to. on_connect will only be called when IKC has managed to subscribe to all specifiers. If it can't, it will die(). YOW that sucks. monitor will save us all.
monitor
serializers
Arrayref or scalar of the packages that you want to use for data serialization. First IKC tries to load each package. Then, when connecting to a server, it asks the server about each one until the server agrees to a serializer that works on its side.
A serializer package requires 2 functions : freeze (or nfreeze) and thaw. See POE::Filter::Reference.
POE::Filter::Reference
The default is [qw(Storable FreezeThaw POE::Component::IKC::Freezer)]. Storable and FreezeThaw are modules in C on CPAN. They are much much much faster then IKC's built-in serializer POE::Component::IKC::Freezer. This serializer uses Data::Dumper and eval $code to get the deed done. There is an obvious security problem here. However, it has the advantage of being pure Perl and all modules come with the core Perl distribution.
[qw(Storable FreezeThaw POE::Component::IKC::Freezer)]
Storable
FreezeThaw
POE::Component::IKC::Freezer
Data::Dumper
eval $code
It should be noted that you should have the same version of Storable on both sides, because some versions aren't mutually compatible.
Philip Gwyn, <perl-ikc at pied.nu>
POE, POE::Component::IKC::Server, POE::Component::IKC::Responder.
2 POD Errors
The following errors were encountered while parsing the POD:
'=item' outside of any '=over'
You forgot a '=back' before '=head1'
To install POE::Component::IKC::Proxy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POE::Component::IKC::Proxy
CPAN shell
perl -MCPAN -e shell install POE::Component::IKC::Proxy
For more information on module installation, please visit the detailed CPAN module installation guide.