gpt4 book ai didi

Laravel Redis 事件广播

转载 作者:IT王子 更新时间:2023-10-29 06:09:02 25 4
gpt4 key购买 nike

我正在尝试将 redis 用作 laravel 中的默认广播器,这是我的 .env fille

QUEUE_DRIVER=sync
APP_ENV=local
APP_DEBUG=true
APP_KEY=***********
DB_HOST=***************
DB_PORT=******************
DB_DATABASE=***************

DB_USERNAME=***********
DB_PASSWORD=*************

CACHE_DRIVER=file
SESSION_DRIVER=file

BROADCAST_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

我正在使用这个事件类来广播

 <?php

namespace App\Events;

use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;
use Log ;
class SomeEvent extends Event implements ShouldBroadcast
{
use SerializesModels;

public $data;

public function __construct($room, $data)
{
Log::debug($room);
Log::debug($data);

$this->data = array(
'room' => $room,
'data' => $data
);
}

public function broadcastOn()
{
Log::debug('in channel!!!');

return ['test-channel'];
}
}

当我使用

在 Controller 中触发事件时
 event(new SomeEvent("test room", "test message"));

我得到以下错误

[2016-02-29 19:17:38] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'Pusher' not found' in C:\xampp\htdocs\TechInsights\vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastManager.php:132
Stack trace:

最奇怪的是当我更改 BroadcastManager.php 中的方法 createPusherDriver

来自

 protected function createPusherDriver(array $config)
{
return new PusherBroadcaster(
new Pusher($config['key'], $config['secret'], $config['app_id'], Arr::get($config, 'options', []))
);
}

  protected function createPusherDriver(array $config)
{
return new RedisBroadcaster(
$this->app->make('redis'), Arr::get($config, 'connection')
);
}

事件在 redis 中广播没有任何问题!有任何想法吗 ?为什么 laravel 使用推送器,即使我将它配置为使用 redis ?我缺少什么?

最佳答案

您是否尝试过清除配置缓存?

php artisan config:clear

关于Laravel Redis 事件广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com