lucify/broadcasting-centrifugo

此包已被废弃,不再维护。作者建议使用 lucify/broadcasting-centrifugo 包。

Lucify 广播 Centrifugo 驱动程序

v1.0.1 2020-04-23 12:58 UTC

This package is not auto-updated.

Last update: 2021-08-07 11:19:43 UTC


README

Centrifugo 广播驱动程序

简介

这是基于

要求

  • PHP 7.4+ 或更高版本 = Luzifer 或 Laravel 7+
  • Centrifugo 服务器 2.1.0 或更高版本(见 此处

依赖

  • guzzlehttp/guzzle

安装

使用 composer 需要此包

composer require lucify/centrifugo

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

    'centrifugo' => [
        'driver'  => 'centrifugo',
        'secret'  => env('CENTRIFUGO_SECRET'),
        'apikey'  => env('CENTRIFUGO_APIKEY'),
        'url'     => env('CENTRIFUGO_URL', 'https://:8000'),
        '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=http://your-centrifulo.url

这些行是可选的

CENTRIFUGO_SSL_KEY=/etc/ssl/some.pem
CENTRIFUGO_VERIFY=true

不要忘记更改 .env 文件中的 BROADCAST_DRIVER 设置

BROADCAST_DRIVER=centrifugo

基本用法

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

有关广播事件的详细信息,请参阅 Laravel 官方文档

一个简单的客户端使用示例

<?php

namespace App\Http\Controllers;

use Lucify\Broadcasting\Centrifugo\Socket;

class ExampleController extends Controller
{
    public function home(Socket $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');

        // ...
    }
}

可用方法

名称 描述
publish(string $channel, array $data) 向频道发送消息。
broadcast(array $channels, array $data) 向多个频道发送消息。
presence(string $channel) 获取频道存在信息(目前订阅此频道的所有客户端)。
presence_stats(string $channel) 以简短形式获取频道存在信息(客户端数量)。
history(string $channel) 获取频道历史信息(发送到频道的最后消息列表)。
history_remove(string $channel) 删除频道历史信息。
unsubscribe(string $channel, string $user) 从频道中取消用户订阅。
disconnect(string $user_id) 通过用户 ID 断开用户连接。
channels() 获取频道信息(当前活动频道的列表)。
info() 获取关于运行服务器节点的统计信息。
generateConnectionToken(string $userId, int $exp, array $info) 生成连接令牌。
generatePrivateChannelToken(string $client, string $channel, int $exp, array $info) 生成私有频道令牌。

许可证

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