skadevz
skadevz

Reputation: 59

Laravel 5.5 Event Not Firing

I'm using laravel 5.5. I set my BROADCAST_DRIVER to log but when i access the link to fire the event, nothing happen. The laravel.log file still empty. I already uncomment BroadcastServiceProvider on config/app.php. This is my code

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=myDatabase
DB_USERNAME=root
DB_PASSWORD=numberPassword

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=database

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

config/app.php

App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,

app/Events/ReloadTableEvent.php

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

    protected $coinData;

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

    public function broadcastWith()
    {
      return ['coin' => $this->coinData];
    }

    public function broadcastAs()
    {
      return 'reload-event';
    }

    public function broadcastOn()
    {
        return new Channel('reload-channel');
    }
}

app/Http/Controllers/ReloadTableController.php

public function reloadTable()
{
  $coin = Coin::take(50)->get();
  $event = new ReloadTableEvent($coin);
  event($event);
}

I already do this

Still nothing. What should i do?

UPDATE 1

I'm not using listener yet. When i create new project, and set the same option with my current project, it works.

storage/log/laravel.log

[2018-01-08 06:24:02] local.INFO: Broadcasting [reload-event] on channels [reload-channel] with payload:
{
    "coin": {
        "name": "Test"
    },
    "socket": null
}  

Upvotes: 3

Views: 1930

Answers (1)

BM2ilabs
BM2ilabs

Reputation: 532

You should listen to the events by php artisan queue:work

Upvotes: 1

Related Questions