File Coverage

blib/lib/Message/Passing/STOMP.pm
Criterion Covered Total %
statement 1 3 33.3
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 2 4 50.0


line stmt bran cond sub pod time code
1             package Message::Passing::STOMP;
2 1     1   1195 use Moose ();
  0            
  0            
3             use namespace::autoclean;
4              
5             our $VERSION = "0.006";
6             $VERSION = eval $VERSION;
7              
8             1;
9              
10             =head1 NAME
11              
12             Message::Passing::STOMP - input and output messages to STOMP.
13              
14             =head1 SYNOPSIS
15              
16             # Terminal 1:
17             $ message-pass --input STDIN --output STOMP --output_options \
18             '{"destination":"/queue/foo","hostname":"localhost","port":"6163","username":"guest","password":"guest"}'
19             {"data":{"some":"data"},"@metadata":"value"}
20              
21             # Terminal 2:
22             $ message-pass --output STDOUT --input STOMP --input_options \
23             '{"destination":"/queue/foo","hostname":"localhost","port":"6163","username":"guest","password":"guest"}'
24             {"data":{"some":"data"},"@metadata":"value"}
25              
26             =head1 DESCRIPTION
27              
28             An L<STOMP|http://stomp.github.com/> transport for L<Message::Passing>.
29              
30             L<STOMP|http://stomp.github.com/> is a simple and well supported messaging protocol, with clients in
31             many languages.
32              
33             This is a simple adaptor to allow you to send or receive STOMP messages
34              
35             =head1 QUEUES AND TOPICS
36              
37             STOMP does not specify the semantics for message destinations or subscriptions (other than
38             that they are a string), however most common STOMP servers (including ActiveMQ and RabbitMQ)
39             expect a string matching /queue/name or /topic/name.
40              
41             Messages published to a destination prefixed by /queue/ are queued up, until a subscriber connects,
42             at which point they are delivered. If multiple subscribers connect then the messages are distributed
43             between the subscribers (i.e. each subscriber sees a portion of the messages).
44              
45             Messages published to a destination prefixed by /topic/ are copied to all connected subscribers,
46             however if there are no subscribers currently, they are discarded, rather than being queued up.
47              
48             =head1 STOMP SERVERS
49              
50             There are a number of message brokers which will communicate with STOMP clients, the main ones
51             being:
52              
53             =head2 RabbitMQ
54              
55             L<RabbitMQ|http://www.rabbitmq.com/> has L<a STOMP plugin|http://www.rabbitmq.com/stomp.html>.
56              
57             =head2 ActiveMQ
58              
59             L<ActiveMQ|http://activemq.apache.org/> has L<a STOMP plugin|http://activemq.apache.org/stomp.html>.
60              
61             =head1 SEE ALSO
62              
63             =over
64              
65             =item L<http://stomp.github.com/> - STOMP protocol documentation
66              
67             =item L<Message::Passing::Output::STOMP>
68              
69             =item L<Message::Passing::Input::STOMP>
70              
71             =item L<Message::Passing>
72              
73             =item L<AnyEvent::STOMP>
74              
75             =back
76              
77             =head1 AUTHOR
78              
79             Tomas (t0m) Doran <bobtfish@bobtfish.net>
80              
81             =head1 COPYRIGHT
82              
83             Copyright The above mentioned AUTHOR 2012.
84              
85             =head1 LICENSE
86              
87             GNU Affero General Public License, Version 3
88              
89             If you feel this is too restrictive to be able to use this software,
90             please talk to us as we'd be willing to consider re-licensing under
91             less restrictive terms.
92              
93             =cut
94              
95             1;
96