首页 文章

Laravel Lumen广播Redis Class pusher未找到

提问于
浏览
0

所以我正在尝试使用redis设置广播但是我不能让它工作,因为我错过了一些配置选项我猜 .

.env文件

...
BROADCAST_DRIVER=redis
...

调节器

event(new TestEvent());

TestEvent.php

<?php

namespace App\Events\Socket;

use App\Events\Event;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class TestEvent implements ShouldBroadcast
{

    protected $data;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->data = [
            'payload' => [
                'test' => 'test'
            ],
            'message' => 'another'
        ];
    }

    public function broadcastOn()
    {

        return new PrivateChannel('user.2');
    }
}

但是,当我在数据库中的failed_jobs表中运行此错误时,会弹出以下错误:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError:在/var/www/vendor/illuminate/broadcasting/BroadcastManager.php:216中找不到类'Pusher'堆栈跟踪:

0 /var/www/vendor/illuminate/broadcasting/BroadcastManager.php(193):Illuminate \ Broadcasting \ BroadcastManager-> createPusherDriver(Array)

1 /var/www/vendor/illuminate/broadcasting/BroadcastManager.php(164):Illuminate \ Broadcasting \ BroadcastManager-> resolve('pusher')

2 /var/www/vendor/illuminate/broadcasting/BroadcastManager.php(153):Illuminate \ Broadcasting \ BroadcastManager-> get('pusher')

3 /var/www/vendor/illuminate/broadcasting/BroadcastManager.php(140):Illuminate \ Broadcasting \ BroadcastManager-> driver('pusher')

4 /var/www/vendor/illuminate/broadcasting/BroadcastServiceProvider.php(30):Illuminate \ Broadcasting \ BroadcastManager-> connection()

5 /var/www/vendor/illuminate/container/Container.php(726):Illuminate \ Broadcasting \ BroadcastServiceProvider-> Illuminate \ Broadcasting (Object(Laravel \ Lumen \ Application),Array)

6 /var/www/vendor/illuminate/container/Container.php(608):Illuminate \ Container \ Container-> build(Object(Closure))

7 /var/www/vendor/illuminate/container/Container.php(575):Illuminate \ Container \ Container-> resolve('Illuminate \ Cont ...')

8 /var/www/vendor/laravel/lumen-framework/src/Application.php(210):Illuminate \ Container \ Container-> make('Illuminate \ Cont ...')

9 /var/www/vendor/illuminate/container/BoundMethod.php(156):Laravel \ Lumen \ Application-> make('Illuminate \ Cont ...')

10 /var/www/vendor/illuminate/container/BoundMethod.php(116):Illuminate \ Container \ BoundMethod :: addDependencyForCallParameter(Object(Laravel \ Lumen \ Application),Object(ReflectionParameter),Array,Array)

11 /var/www/vendor/illuminate/container/BoundMethod.php(29):Illuminate \ Container \ BoundMethod :: getMethodDependencies(Object(Laravel \ Lumen \ Application),Array,Array)

12 /var/www/vendor/illuminate/container/BoundMethod.php(87):Illuminate \ Container \ BoundMethod :: Illuminate \ Container ()

13 /var/www/vendor/illuminate/container/BoundMethod.php(31):Illuminate \ Container \ BoundMethod :: callBoundMethod(Object(Laravel \ Lumen \ Application),Array,Object(Closure))

14 /var/www/vendor/illuminate/container/Container.php(539):Illuminate \ Container \ BoundMethod :: call(Object(Laravel \ Lumen \ Application),Array,Array,NULL)

15 /var/www/vendor/illuminate/bus/Dispatcher.php(94):Illuminate \ Container \ Container-> call(Array)

16 /var/www/vendor/illuminate/pipeline/Pipeline.php(114):Illuminate \ Bus \ Dispatcher-> Illuminate \ Bus (Object(Illuminate \ Broadcasting \ BroadcastEvent))

17 /var/www/vendor/illuminate/pipeline/Pipeline.php(102):Illuminate \ Pipeline \ Pipeline-> Illuminate \ Pipeline (Object(Illuminate \ Broadcasting \ BroadcastEvent))

18 /var/www/vendor/illuminate/bus/Dispatcher.php(98):Illuminate \ Pipeline \ Pipeline-> then(Object(Closure))

19 /var/www/vendor/illuminate/queue/CallQueuedHandler.php(42):Illuminate \ Bus \ Dispatcher-> dispatchNow(Object(Illuminate \ Broadcasting \ BroadcastEvent),false)

20 /var/www/vendor/illuminate/queue/Jobs/Job.php(69):Illuminate \ Queue \ CallQueuedHandler-> call(Object(Illuminate \ Queue \ Jobs \ DatabaseJob),Array)

21 /var/www/vendor/illuminate/queue/Worker.php(317):Illuminate \ Queue \ Jobs \ Job-> fire()

22 /var/www/vendor/illuminate/queue/Worker.php(267):Illuminate \ Queue \ Worker-> process('database',Object(Illuminate \ Queue \ Jobs \ DatabaseJob),Object(Illuminate \ Queue \) WorkerOptions))

23 /var/www/vendor/illuminate/queue/Worker.php(113):Illuminate \ Queue \ Worker-> runJob(Object(Illuminate \ Queue \ Jobs \ DatabaseJob),'database',Object(Illuminate \ Queue \) WorkerOptions))

24 /var/www/vendor/illuminate/queue/Console/WorkCommand.php(101):Illuminate \ Queue \ Worker-> daemon('database','default',Object(Illuminate \ Queue \ WorkerOptions))

25 /var/www/vendor/illuminate/queue/Console/WorkCommand.php(85):Illuminate \ Queue \ Console \ WorkCommand-> runWorker('database','default')

26 [内部功能]:照亮\ Queue \ Console \ WorkCommand-> fire()

27 /var/www/vendor/illuminate/container/BoundMethod.php(29):call_user_func_array(Array,Array)

28 /var/www/vendor/illuminate/container/BoundMethod.php(87):Illuminate \ Container \ BoundMethod :: Illuminate \ Container ()

29/var/www/vendor/illuminate/container/BoundMethod.php(31):Illuminate \ Container \ BoundMethod :: callBoundMethod(Object(Laravel \ Lumen \ Application),Array,Object(Closure))

30 /var/www/vendor/illuminate/container/Container.php(539):Illuminate \ Container \ BoundMethod :: call(Object(Laravel \ Lumen \ Application),Array,Array,NULL)

31 /var/www/vendor/illuminate/console/Command.php(182):Illuminate \ Container \ Container-> call(Array)

32 /var/www/vendor/symfony/console/Command/Command.php(262):Illuminate \ Console \ Command-> execute(Object(Symfony \ Component \ Console \ Input \ ArgvInput),Object(Illuminate \ Console \) OutputStyle))

33 /var/www/vendor/illuminate/console/Command.php(167):Symfony \ Component \ Console \ Command \ Command-> run(对象(Symfony \ Component \ Console \ Input \ ArgvInput),对象(Illuminate \控制台\ OutputStyle))

34 /var/www/vendor/symfony/console/Application.php(888):Illuminate \ Console \ Command-> run(对象(Symfony \ Component \ Console \ Input \ ArgvInput),对象(Symfony \ Component \ Console \输出\ ConsoleOutput))

35 /var/www/vendor/symfony/console/Application.php(224):symfony \ Component \ Console \ Application-> doRunCommand(Object(Illuminate \ Queue \ Console \ WorkCommand),Object(Symfony \ Component \ Console \)输入\ ArgvInput),对象(Symfony \ Component \ Console \ Output \ ConsoleOutput))

36 /var/www/vendor/symfony/console/Application.php(125):symfony \ Component \ Console \ Application-> doRun(Object(Symfony \ Component \ Console \ Input \ ArgvInput),Object(Symfony \ Component \控制台\输出\ ConsoleOutput))

37 /var/www/vendor/laravel/lumen-framework/src/Console/Kernel.php(84):Symfony \ Component \ Console \ Application-> run(对象(Symfony \ Component \ Console \ Input \ ArgvInput),对象(Symfony的\元器件\控制台\输出\ ConsoleOutput))

38 / var / www / artisan(35):Laravel \ Lumen \ Console \ Kernel-> handle(对象(Symfony \ Component \ Console \ Input \ ArgvInput),对象(Symfony \ Component \ Console \ Output \ ConsoleOutput))

39

这很奇怪,因为它不应该尝试创建Pusher实例 .

我尝试过使用composer dump-autoload,composer clear-cache,php artisan clear-compiled ...

这很有趣,因为如果我尝试这个代码并转储实例,我会得到一个很好的配置的BroadcastManager:

$broadcastManager = (new BroadcastManager(app()))->connection();

任何人都可以帮忙吗?

1 回答

  • 0

    不要告诉你的消息后发生了什么,试一试

    composer require pusher/pusher-php-server --no-scripts
    

    要么

    php artisan clear-compiled
    

    要么

    编辑 "vendor/laravel/framework/src/illuminate/Broadcasting/BroadcastManager.php" 中的行

    “使用Pusher;” “使用Pusher \ Pusher;”

    要么

    in your config/app.php add this line to aliases

    'Pusher'=> Pusher \ Pusher :: class,

相关问题