Skip to content

Latest commit

 

History

History
180 lines (130 loc) · 9.1 KB

README_RU.md

File metadata and controls

180 lines (130 loc) · 9.1 KB

Документация EN | RU

Laravel + Centrifugo

Centrifugo broadcast драйвер для Laravel 9 - 11

Build Status Latest Version Total Downloads Software License

Введение

Centrifugo broadcaster для laravel , основан на :

Особенности

  • Совместимость с последней версией Centrifugo v5.4.8 🚀
  • Обертка над Centrifugo HTTP API 🔌
  • Аутентификация с помощью токена JWT (HMAC алгоритм) для анонимного, авторизованного пользователя и приватного канала 🗝️

Требования

  • PHP 8.0 - 8.3
  • Laravel 9 - 11
  • Guzzlehttp/Guzzle 6 - 7
  • Centrifugo Сервер v5 или новее (см. здесь)

Установка

Для Laravel 9-10

composer require denis660/laravel-centrifugo

Для Laravel 11 есть особенности, читаем ниже

Выберите нужную вам версию
Версия PHP Laravel Centrifugo Комментарий
5.0.* >= 8.0 9 - 11 5 Текущая версия
3.0.* >= 7.4 8.75.* - 10 4-5 Предыдущая версия

По умолчанию вещание не включено в новых приложениях Laravel 11. Вы можете включить вещание с помощью команды install:broadcasting Artisan:

php artisan install:broadcasting

Если будет вопрос, надо ли установить Reverb, отвечаем - нет

Потом установить пакет для работы с Centrifuge через composer, выполнив команду в консоле:

composer require denis660/laravel-centrifugo

Конфигурация

Запустите команду centrifuge:install, которая установит centrifuge-laravel с разумным набором параметров конфигурации по умолчанию и сгенерирует ключи по умолчанию. Если вы хотите внести какие-либо изменения в конфигурацию, вы можете сделать это, обновив переменные среды в .env.

php artisan centrifuge:install

Учетные данные

Для установления соединения с Centrifuge необходимо задать набор учетных данных Centrifuge из файла config.json. Эти учетные данные настраиваются на сервере Centrifuge, но Laravel для примера сгенерирует ключи, обязательно замените их. Вы можете определить эти учетные данные с помощью следующих переменных среды:

Обязательные параметры

CENTRIFUGO_TOKEN_HMAC_SECRET_KEY=token_hmac_secret_key-from-centrifugo-config
CENTRIFUGO_API_KEY=api_key-from-centrifugo-config

Эти строки необязательны, изменять если необходимо:

CENTRIFUGO_URL=http://localhost:8000
CENTRIFUGO_SSL_KEY=/etc/ssl/some.pem
CENTRIFUGO_VERIFY=false

Не забудьте проверить параметр BROADCAST_DRIVER в файле .env!

BROADCAST_DRIVER=centrifugo

Клиентские SDK

Для работы с клиентом , почитайте в Client SDK API

Вот список SDK, поддерживаемых Centrifugal Labs:

  • JavaScript — для браузера, NodeJS и React Native
  • Golang — для языка Go
  • Dart — для Dart и Flutter (мобильные и веб-приложения)
  • Swift — для собственной разработки iOS
  • Java — для собственной разработки Android и общей Java
  • Python — SDK реального времени для Python поверх asyncio

Базовое использование

Настройте ваш сервер Centrifugo , детальнее в официальной документации Для отправки событий, почитайте официальную документацию для Laravel

Простой пример использования клиента:

<?php
declare(strict_types = 1);

namespace App\Http\Controllers;


use denis660\Centrifugo\Centrifugo;
use Illuminate\Support\Facades\Auth;

class ExampleController
{

    public function example(Centrifugo $centrifugo)
    {
        // Отправить сообщение в канал news
        $centrifugo->publish('news', ['message' => 'Hello world']);

        // Сгенерировать токен для подключения
        $token = $centrifugo->generateConnectionToken((string)Auth::id(), 0, [
            'name' => Auth::user()->name,
        ]);

        // Сгенерировать токен для подключения к приватному каналу
        $apiSign = $centrifugo->generatePrivateChannelToken((string)Auth::id(), 'channel', time() + 5 * 60, [
            'name' => Auth::user()->name,
        ]);

        //Получить список активных каналов
        $centrifugo->channels();

        //Получить информацию о канале news, список активных клиентов
        $centrifugo->presence('news');

    }
}

Методы для генерации клиентских токенов

Название Описание
generateConnectionToken Генерация токена для подключения
generatePrivateChannelToken Генерация приватного токена для приватного канала

Методы API

Название Описание
publish Отправка сообщения в канал
broadcast Отправить сообщение в несколько каналов.
presence Получите информацию о присутствии в канале (все клиенты в настоящее время подписаны на этот канал).
presenceStats Получите краткую информацию о канале (количество клиентов).
history Получить информацию об истории канала (список последних сообщений, отправленных в канал).
historyRemove Удалить информацию из истории канала.
subscribe Подписать пользователя на канал
unsubscribe Отписать пользователя от канала.
disconnect Отключить пользователя по его ID.
channels Cписок текущих активных каналов.
info Статистическая информация о запущенных серверных узлах.

Лицения

Лицензия MIT. Пожалуйста прочитайте License File для получения дополнительной информации.

Помочь проекту

Кошелек USDT: TUYJrA9VRtXhDFooESHyT8dQSyg5zmtUg7

Сеть: TRC20

Contributing 🤝