mintermania/centrifuge-broadcaster 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mintermania/centrifuge-broadcaster

Composer 安装命令:

composer require mintermania/centrifuge-broadcaster

包简介

Centrifuge broadcaster for laravel >= 5.6

README 文档

README

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

Requirements

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

Installation

Require this package with composer:

composer require emprove/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.

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 9
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-09-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固