Laravel Echo 不监听事件(使用 redis)

时间:2021-04-22 11:26:34

标签: laravel laravel-echo

我正在尝试使用 redis/socket.io 为我的项目实现 Laravel Echo,一切看起来都不错,但用户无法在浏览器中收听事件,也没有收到任何错误。

这是客户端代码:

import Echo from 'laravel-echo';

window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001',
});
    
Echo.channel('goals')
    .listen('GoalProcessed', event => console.log(event));

这是活动类

<?php

 namespace App\Events;

 use App\Models\Goal;
 use Illuminate\Broadcasting\Channel;
 use Illuminate\Broadcasting\InteractsWithSockets;
 use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
 use Illuminate\Foundation\Events\Dispatchable;
 use Illuminate\Queue\SerializesModels;

 class GoalProcessed implements ShouldBroadcast
 {
     use Dispatchable, InteractsWithSockets, SerializesModels;

     public $goal;

     public function __construct(Goal $goal)
     {
          $this->goal = $goal;
     }

     public function broadcastOn()
     {
         return new Channel('goals');
     }
 }

routes/web.php

Route::get('/', function (){
    event(new \App\Events\GoalProcessed(Goal::query()->first()));
});

routes/channel.php

Broadcast::channel('goals', function ($user) {
    return true;
});

.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:T5//n2w8CQ4hHbDu+5AfTi67ShJ4bbxZdL0j9flAP/U=
APP_DEBUG=true
APP_URL=http://project.test

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=project
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

laravel-echo-server 的响应: enter image description here

0 个答案:

没有答案