LaravelPackages.net
Acme Inc.
Toggle sidebar
luisozparr/centrifuge-broadcaster

Centrifuge broadcaster for laravel >= 8.x

232
0
v2.4.0-rc
About luisozparr/centrifuge-broadcaster

luisozparr/centrifuge-broadcaster is a Laravel package for centrifuge broadcaster for laravel >= 8.x. It currently has 0 GitHub stars and 232 downloads on Packagist (latest version v2.4.0-rc). Install it with composer require luisozparr/centrifuge-broadcaster. Discover more Laravel packages by luisozparr or browse all Laravel packages to compare alternatives.

Last updated

Attention! Maybe some diff with IRL.

  1. This package forked from "LaraComponents" to fit new Centrifugo v2.
  2. Drop Redis support (v2 don't support it), see official migration guide.
  3. Update generateToken(user id, timestamp, info) method (v2 uses only jwt auth workflow).

Introduction

Centrifuge broadcaster for laravel >= 5.7 And Lumen >= 7.0 (Tested with Laravel 5.6, 7.0 and Lumen 7.0)

Requirements

  • PHP 7.1.3+ or newer (tested on 7.2.10)
  • Laravel 5.3+ or newer (tested on 5.7.8)
  • Lumen 7.0+ or newer (tested on 7.2.0)
  • Centrifugo Server 2 or newer (see here)

Installation

Require this package with composer:

composer require LuisOzParr/centrifuge-broadcaster

Open your config/app.php and add the following to the providers array:

'providers' => [
    // ...
    LaraComponents\Centrifuge\CentrifugeServiceProvider::class,

    // And uncomment BroadcastServiceProvider
    App\Providers\BroadcastServiceProvider::class,
],

Open your config/broadcasting.php and add the following to it:

'connections' => [
    'centrifuge' => [
        'driver'       => 'centrifuge',
        'url'          => env('CENTRIFUGE_URL', 'http://127.0.0.1:8000'),
        'token_ttl'    => env('CENTRIFUGE_TOKEN_TTL', 3600),
        'token_issuer' => env('APP_URL', 'default'),
        'secret'       => env('CENTRIFUGE_SECRET', null),
        'api_key'      => env('CENTRIFUGE_API_KEY', null),
        'ssl_key'      => env('CENTRIFUGE_SSL_KEY', null),
        'verify'       => env('CENTRIFUGE_VERIFY', false),
    ],
    // ...
],

You can also add a configuration to your .env file:

CENTRIFUGE_API_KEY=very-long-secret-api-key
CENTRIFUGE_SECRET=very-long-secret-key
CENTRIFUGE_URL=http://localhost:8000
CENTRIFUGE_SSL_KEY=/etc/ssl/some.pem
CENTRIFUGE_TOKEN_TTL=3600 # seconds
CENTRIFUGE_VERIFY=false

Do not forget to install the broadcast driver

BROADCAST_DRIVER=centrifuge

Basic Usage

To configure the Centrifugo server, read the official documentation

For broadcasting events, see the official documentation of laravel

A simple example of using the client:

<?php

namespace App\Http\Controllers;

use LaraComponents\Centrifuge\Centrifuge;

class ExampleController extends Controller
{
    public function home(Centrifuge $centrifuge)
    {
        // Send message into channel
        $centrifuge->publish('channel-name', [
            'key' => 'value'
        ]);

        // Generate api sign
        $apiSign = $centrifuge->generateApiSign('data');

        // ...
    }
}

Available methods

| Name | Description | |------|-------------| | publish(string $channel, array $data, string $client = null) | Send message into channel. | | broadcast(array $channels, array $data, string $client = null) | Send message into multiple channel. | | presence(string $channel) | Get channel presence information (all clients currently subscribed on this channel). | | history(string $channel) | Get channel history information (list of last messages sent into channel). | | unsubscribe(string $user_id, string $channel = null) | Unsubscribe user from channel. | | disconnect(string $user_id) | Disconnect user by its ID. | | channels() | Get channels information (list of currently active channels). | | stats() | Get stats information about running server nodes. | | generateToken(string $userId) | Generate JWT token for client. | | generateApiSign(string $data) | Generate api sign. |

License

The MIT License (MIT). Please see License File for more information.

Star History Chart