The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

WWW::PubNub - PubNub API

VERSION

version 0.001

SYNOPSIS

  use WWW::PubNub;

  my $pubnub = WWW::PubNub->new(
    subscribe_key => 'demo',
    publish_key => 'demo', # not supported yet
  );

  #
  # Blocking usage
  #
  #################

  $pubnub->subscribe(
    my_channel => sub {                             # $_[0] is a WWW::PubNub::Message
      print "It is said ".$_[0]->get('text')."\n";  # helper function for accessing raw message
    },
  );

  # alternative shortcut:

  WWW::PubNub->subscribe( demo => my_channel => sub { ... } );

  # multi subscription works out of box:

  $pubnub->subscribe(
    [qw( my_channel1 my_channel2 )] => sub {        # called on any message (optional)
      print "On ".$_[0]->channel." it is said ".$_[0]->message->{text}."\n";
    },
    my_channel2 => sub { ... },                     # only called for specific channel
  );

  # multi subscription and raw

  $pubnub->subscribe(
    [qw( my_channel1 my_channel2 )] => sub {
      my ( $message, $channel ) = @_;
      print "On ".$channel." it is said ".$message->{text}."\n"; # raw message of PubNub
    },
    raw => 1,
  );

  #
  # Non-Blocking usage
  #
  #####################

  my $request = $pubnub->subscribe_request('my_channel');

  # Repeat:

  my $response = your_http_agent($request);

  my ( $next_request, @messages ) = $pubnub->subscribe_next_request_and_messages($response);

  # There can be no messages! Do something with the messages, repeat with $next_request

DESCRIPTION

Module for using the PubNub API.

A message is a WWW::PubNub::Message object.

Publish not yet implemented

More documentation to come...

More tests to come...

INIT ARGS

subscribe_key

Subscribe key used for PubNub.

publish_key

Publish key used for PubNub. (Not supported yet)

METHODS

subscribe

Takes a channel name or an arrayref of channel names as argument, followed by a coderef which gets called for every new message. After that a hash of arguments can be used to add additional coderefs for specific events:

SPONSORING

This distribution is sponsored by RealEstateCE.com.

SUPPORT

IRC

  /msg Getty on irc.perl.org or chat.freenode.net.

Repository

  https://github.com/Getty/p5-www-pubnub
  Pull request and additional contributors are welcome

Issue Tracker

  https://github.com/Getty/p5-www-pubnub/issues

AUTHOR

Torsten Raudssus <torsten@raudss.us>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.