Centrifugo (Centrifuge) [1.0+] PHP Server REDIS & HTTP API implementation for Laravel 5+ Incompatible with Centrifugo [2.0+], will be updated later!
- Run
composer require skoniks/php_cent
&composer update
- Create
config/centrifugo.php
as provided below - Add alias in
config/app.php
as provided below
For laravel 5.5+ use version >= "2.5"
'aliases' => [
...
'Centrifugo'=> SKONIKS\Centrifugo\Centrifugo::class,
]
- Add your redis connection to
config/database.php
- Change
config/centrifugo.php
to redis settings
...
'redis' => [
...
'centrifugo' => [
'host' => '127.0.0.1',
'password' => '',
'port' => 6379,
'database' => 1,
],
],
...
Make shure that HTTP connection must work independently from redis connection. It is because redis transport provides only this methods:
- 'publish'
- 'broadcast'
- 'unsubscribe'
- 'disconnect'
Redis dont provide this methods:
- presence
- history
- channels
- stats
- node
<?php
use Centrifugo;
class Controller {
public function _function(){
// declare Centrifugo
$centrifugo = new Centrifugo();
// generating token example
$current_time = time();
$user_id = '1234567890';
$token = Centrifugo::token($user_id, $current_time, 'custom info');
// publishing example
$centrifugo->publish("channel" , ["custom data"]);
// list of awailible methods:
$response = $centrifugo->publish($channel, $data);
$response = $centrifugo->unsubscribe($channel, $user_id);
$response = $centrifugo->disconnect($user_id);
$response = $centrifugo->presence($channel);
$response = $centrifugo->history($channel);
$response = $centrifugo->channels();
$response = $centrifugo->stats();
$response = $centrifugo->node();
$token = Centrifugo::token($user_id, $timestamp, $info);
// $response == false | when error
}