Centrifugo::Client
Centrifugo::Client : A server-side Perl client for centrifugo
https://github.com/Orabig/centrifugo-perl-client
This module can be used to connect to a Centrifugo server with WebSockets. (Note: it does not provide access to the HTTP API of Centrifugo)
More info about Centrifugo :
https://github.com/centrifugal/centrifugo or https://fzambia.gitbooks.io/centrifugal/content/
INSTALLATION
To install this module, run the following commands:
perl Makefile.PL
make
make install
or simply use cpanminus:
cpanm Centrifugo::Client
SUPPORT AND DOCUMENTATION
After installing, you can find documentation for this module with the
perldoc command.
perldoc Centrifugo::Client
EXAMPLE
use Centrifugo::Client;
use AnyEvent;
my $cclient = Centrifugo::Client->new("$CENTRIFUGO_WS/connection/websocket");
$cclient->connect(
user => $USER_ID,
timestamp => $TIMESTAMP,
token => $TOKEN
) -> on('connect', sub{
my ($infoRef)=@_;
print "Connected to Centrifugo version ".$infoRef->{version};
})-> on('message', sub{
my ($infoRef)=@_;
print "Received message : ".encode_json $infoRef->{data};
});
# Subscription to channels are delayed until connection
$cclient->subscribe( channel=>'my-channel&' );
$cclient->subscribe( channel=>'public-channel' );
$cclient->subscribe( channel=>'$private' );
# Now start the event loop to keep the program alive
AnyEvent->condvar->recv;
Note : To connect to a Centrifugo instance, your program should first ask for a TOKEN. In production this must only be done on backend side and you should never show secret to client!
use Centrifugo::Client qw!generate_token!;
my $SECRET = "secret";
my $USER = "someUser";
my $TIMESTAMP = time();
my $TOKEN = generate_token( $SECRET, $USER, $TIMESTAMP );