NAME Mojolicious::Plugin::Pubsub - Pubsub plugin for Mojolicious VERSION version 0.002 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->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 Mojolicious, Mojo::Redis2. AUTHOR Andreas Guldstrand COPYRIGHT AND LICENSE This software is Copyright (c) 2018 by Andreas Guldstrand. This is free software, licensed under: The MIT (X11) License