NAME
Mojolicious::Plugin::Pubsub - Pubsub plugin for Mojolicious
VERSION
version 0.003
SYNOPSIS
# Mojolicious
my $pubsub = $app->plugin('Pubsub', { cb => sub { print "Message: $_[0]\n"; }, socket => 'myapp.pubsub', });
$app->publish("message");
# Mojolicious::Lite
my $pubsub = plugin Pubsub => { cb => sub { print "Message: $_[0]\n"; }, socket => 'myapp.pubsub', };
app->publish("message");
DESCRIPTION
Easy way to add pubsub to your Mojolicious apps; it hooks into the Mojo::IOLoop to send and receive messages asynchronously.
NAME
Mojolicious::Plugin::Pubsub - Pubsub plugin for Mojolicious
OPTIONS
cb
Takes a callback CODE
reference.
socket
A path to a UNIX
socket used to communicate between the publishers. By default this will be $app->home->child($app->moniker . '.pubsub')
.
HELPERS
publish
$c->publish("message");
$c->publish(@args);
Publishes a message that the subscribing callbacks will receive.
subscribe
$c->subscribe($cb);
Add the $cb
code reference to the callbacks that get published messages.
unsubscribe
$c->unsubscribe($cb);
Remove the $cb
code reference from the callbacks that get published messages.
SUBSCRIBERS
my $subscriber = sub {
my @args = @_;
...
};
Subscribers sent to the cb
option, or the subscribe
helper should simply be CODE
references that handle the arguments passed in. The @args
will be the same as what was passed in to the publish
helper, except they will have gotten JSON
encoded via Mojo::JSON on the way, so only data structures that consist of regular scalars, arrays, hashes, and objects that implement TO_JSON
or that stringify will work correctly. See Mojo::JSON for more details.
METHODS
register
my $pubsub = $plugin->register(Mojolicious->new, { cb => sub { ... }, socket => $path });
Register plugin in Mojolicious application.
SEE ALSO
AUTHOR
Andreas Guldstrand <andreas.guldstrand@gmail.com>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018 by Andreas Guldstrand.
This is free software, licensed under:
The MIT (X11) License