POE-Event-Message
=================
This small set of classes is a starting point for creating a generic
application messaging protocol. The intent is for these to be used as
a foundation when building networked and/or event-driven applications
such as Web services.
Features of POE::Event::Message include the following.
. Messages of this class have flexible routing capabilities
that work both inside and outside POE-based applications.
. A 'local' message routing mechanism is designed to be
plug-compatible with POE's existing 'postback' mechanism.
This is referred to as a 'routeback' mechanism in this class.
. A 'remote' message routing mechanism can be used by message-based
client scripts, or perhaps as a simple alternative to the 'IKC'
(Inter Kernel Communication) mechanism.
. Messages are delivered based on the type of the destination.
A 'local' routing will trigger a POE 'post' or 'call' event,
while a 'remote' routing invokes a socket connection to a
particular host and port.
. In addition, this class has the ability to introduce
multiple 'forward' and/or 'reverse' routing to multiple
event and/or remote host destinations. This allows for
temporary interruption of normal message flow, without
any of the original participants (events or whatever)
knowing or caring.
. Messages can also be sent through a file handle, such as
from a non-POE child to a POE-based parent process.
. Messages can contain almost anything including binary data
and complex Perl data structures.
Note that POE and the POE kernel are not requirements for using
these classes. Time::Hires is highly recommended (as, without it,
there is a small but real possibility of generating duplicate
message identifiers).
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
DEPENDENCIES
This module requires the following modules and libraries.
The POE kernel is not a requirement for this module.
POE::Driver::SysRW
POE::Filter::Reference
Time::HiRes - Optional, but highly recommended
COPYRIGHT AND LICENCE
Copyright (C) 2005-2007 by Chris Cobb
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.