Why not adopt me?
NAME
package POE::Component::Server::AsyncEndpoint::ChannelAdapter::Stomp;
SYNOPSIS
When you init your Endpoint:
# Sample Outbound STOMP Client
my $stc = POE::Component::Server::AsyncEndpoint::ChannelAdapter::Stomp->spawn({
Alias => $Alias . '_STC',
mq_address => $self->{config}->mq_address,
mq_port => $self->{config}->mq_port,
queue => '/queue/ob_sample',
direction => 'OB',
user => $self->{config}->stcuser,
pass => $self->{config}->stcpass,
rcpt_callback => {
to_session => $Alias,
to_handler => 'RCPT_OB_Sample',
},
});
Later in your Endpoint:
my $nframe = $stc->stomp->send({
destination => $stc->config('Queue'),
data => $your_data,
receipt => $your_message_id,
});
$kernel->call( $stc->config('Alias'), 'send_data', $nframe );
DESCRIPTION
This class is mainly a wrapper around POE::Component::Client::Stomp that not only simplifies it's use in your Endpoint, but also enforces certain rules so the implementation complies with the Channel Adapter patterns we have designed. For example if you initialize an Outbound STOMP client it will refuse to initialize until you have defined a callback for the STOMP/RECEIPT, if it's an IB client it will refuse to initialize if you don't define a callback to handle received data from the queue.
Methods
- spawn
-
Parameters:
Alias: An alias for the STOMP client session. It should be set to the Endpoint's Alias with a suffix as such: $Alias . '_STC', mq_address: The IP address of the message queue where you will publish or subscribe to. mq_port: The IP port of the above address. queue: The MQ queue name. Example: '/queue/ob_sample', direction: Must be 'OB' or 'IB' for Outbound and Inbound respectively. user: STOMP User pass: STOMP Password
If it's an Outbound client you must define a callback for the STOMP/RECEIPT. The parameter is rcpt_callback and it will expect a hash ref with two parameters: to_session and to_handler.
to_session: Specifies to which POE session the STOMP events should be posted to. to_handler: Specifies the object method that will be called when the client gets a RECEIPT. For example: rcpt_callback => { to_session => $Alias, #post to our Endpoint session... to_handler => 'RCPT_OB_Sample', # ...to this object method },
If it's an Inbound client you must define a callback when data is received from the queue. The parameter is rx_callback and will expect a hash ref with the same parameters as above.
For example: rx_callback => { to_session => $Alias, to_handler => 'IB_Sample', },
SEE ALSO
POE::Component::Server::AsyncEndpoint::ChannelAdapter::SOAP POE::Component::Server::AsyncEndpoint::ChannelAdapter::Config
POE::Component::Server::AsyncEndpoint POE
AUTHOR
Alejandro Imass <ait@p2ee.org> Alejandro Imass <aimass@corcaribe.com>
COPYRIGHT AND LICENSE
Copyright (C) 2008 by Alejandro Imass / Corcaribe Tecnología C.A. for the P2EE Project
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.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 284:
You forgot a '=back' before '=head1'
- Around line 301:
Non-ASCII character seen before =encoding in 'Tecnología'. Assuming UTF-8