Laravel provides with events, listeners, broadcasting and channels to communicate with front end via events. You don't need to do that in controllers. You can define broadcast routes in
routes/channels.php
you can then define events that by default include broadcast method in scaffolding.
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
Bind listeners to event and implement "shouldque" interface to that these run as async jobs. You can also use laravel notifications to provide live notification. laravel broadcasting
If you still want to grab event in controller you can specify in EventServiceProvider as
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
DownloadFile::class => [
CompanyDashboardController::class,
],
];
public function boot()
{
parent::boot();
}
}
your event will look like
class DownloadFile
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $process_id;
public function __construct($process_id)
{
$this->process_id = $file;
}
}
Finally you can grab this event in you controller as like:
class CompanyDashboardController extends Controller
{
public function __construct()
{
//constructor
}
public function handle(DownloadFile $event)
{
if($event->process_id == 1)
{
return "something";
}
}
}
If you meant to some Javascript event instead of Laravel read
Use Server-Sent Events to push messages to browser