NAME
Plack::Handler::Stomp::NoNetwork - like Plack::Handler::Stomp, but without a network
VERSION
version 1.15
SYNOPSIS
my $runner = Plack::Handler::Stomp::NoNetwork->new({
trace_basedir => '/tmp/mq',
subscriptions => [
{ destination => '/queue/plack-handler-stomp-test' },
{ destination => '/topic/plack-handler-stomp-test',
path_info => '/topic/ch1', },
{ destination => '/topic/plack-handler-stomp-test',
path_info => '/topic/ch2', },
],
});
$runner->run(MyApp->get_app());
DESCRIPTION
Just like Plack::Handler::Stomp, but instead of using a network connection, we get our frames from a directory.
This class uses File::ChangeNotify to monitor the trace_basedir, and Net::Stomp::MooseHelpers::ReadTrace to read the frames.
It also consumes Net::Stomp::MooseHelpers::TraceOnly to make sure that every reply we try to send is actually written to disk instead of a broker.
WARNING!
This class does not implement subscription selectors. If you have multiple subscriptions for the same destination, a random one will be used.
ATTRIBUTES
file_watcher
Instance of File::ChangeNotify::Watcher, set up to monitor trace_basedir
for sent messages.
frame_reader
Instance of Net::Stomp::MooseHelpers::ReadTrace used to parse frames from disk.
METHODS
frame_loop
This method overrides the corresponding one from Plack::Handler::Stomp.
Loop forever, collecting create
events from the "file_watcher". Each new file is parsed by the "frame_reader", then passed to handle_stomp_frame as usual.
AUTHOR
Gianni Ceccarelli <gianni.ceccarelli@net-a-porter.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by Net-a-porter.com.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.