lucify / broadcasting-centrifugo
v1.0.1
2020-04-23 12:58 UTC
Requires
- php: >=7.2.12
- guzzlehttp/guzzle: ^6.3.3
- illuminate/broadcasting: ^7.0
- laravel/framework: ^7.0
Requires (Dev)
- orchestra/testbench: 4.0.*
- phpunit/phpunit: 8.3.*
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)。有关更多信息,请参阅 许可证文件。