alex-hnydiuk/laracent

Centrifugo 广播器,适用于 laravel >= 5.7 和 Centrifugo >= 2.1.0

1.0.0 2019-02-18 00:13 UTC

This package is auto-updated.

Last update: 2024-09-22 20:59:51 UTC


README

Centrifugo 广播驱动器,适用于 Laravel 5

Build Status Latest Version Quality Score StyleCI Total Downloads Software License

简介

Centrifugo 广播器,适用于 laravel >= 5.7 是基于 centrifuge-broadcaster 的分支,依赖于

变更说明

  • 从依赖中移除了 predis/predis
  • 删除了所有与 Redis 相关的代码
  • 根据 Centrifugo API 的新版本更新了公共函数代码

要求

  • PHP 7.2.12+ 或更高版本
  • Laravel 5.7 或更高版本
  • Centrifugo 服务器 2.1.0 或更高版本(见 此处

依赖

  • guzzlehttp/guzzle

安装

使用 composer 安装此包

composer require alex-hnydiuk/laracent

打开您的 config/app.php 并将以下内容添加到 providers 数组中

'providers' => [
    // ...
    AlexHnydiuk\Laracent\LaracentServiceProvider::class,

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

打开您的 config/broadcasting.php 并添加新的连接如下

    'centrifugo' => [
        'driver' => 'centrifugo',
        'secret'  => env('CENTRIFUGO_SECRET'),
        'apikey'  => env('CENTRIFUGO_APIKEY'),
        'url'     => env('CENTRIFUGO_URL', 'https://:8000'), // centrifugo api url
        'verify'  => env('CENTRIFUGO_VERIFY', false), // Verify host ssl if centrifugo uses this
        'ssl_key' => env('CENTRIFUGO_SSL_KEY', null), // Self-Signed SSl Key for Host (require verify=true)
    ],

您还应在 .env 文件中添加以下两行

CENTRIFUGO_SECRET=very-long-secret-key-from-centrifugo-config
CENTRIFUGO_APIKEY=long-secret-apikey-from-centrifugo-config

这些行是可选的

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

别忘了更改 .env 文件中的 BROADCAST_DRIVER 设置!

BROADCAST_DRIVER=centrifugo

基本用法

要配置 Centrifugo 服务器,请阅读 官方文档

有关广播事件的说明,请参阅 Laravel 的官方文档

简单的客户端用法示例

<?php

namespace App\Http\Controllers;

use AlexHnydiuk\Laracent\Laracent;

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

        // Generate connection token
        $token = $centrifugo->generateConnectionToken('user id', 'timestamp', 'info');

        // Generate private channel token
        $apiSign = $centrifuge->generatePrivateChannelToken('client', 'channel', 'timestamp', 'info');

        // ...
    }
}

可用方法

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件