Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What is the main difference between ShouldBroadcast and ShouldBroadcastNow


What is the main difference between ShouldBroadcast and ShouldBroadcastNow


The main difference between `ShouldBroadcast` and `ShouldBroadcastNow` in Laravel is how the events are handled and broadcasted.

1. ShouldBroadcast:
- Events that implement the `ShouldBroadcast` interface are queued and broadcasted asynchronously.
- When an event is dispatched, it is added to the application's queue and will be processed by a queue worker when it gets a chance to do so.
- This approach is useful when you don't need the event to be broadcasted immediately, and you can tolerate some delay in the broadcasting process.
- The queue connection used for broadcasting is determined by the `queue.connections.broadcasting` configuration in your `config/queue.php` file.

2. ShouldBroadcastNow:
- Events that implement the `ShouldBroadcastNow` interface are broadcasted immediately, without being queued.
- When an event is dispatched, it is broadcasted right away, without any delay.
- This approach is useful when you need the event to be broadcasted as soon as possible, and you can't tolerate any delay in the broadcasting process.
- The `ShouldBroadcastNow` events are executed using the `sync` queue connection, which means they are processed immediately, without being queued.

In summary, the main difference is that `ShouldBroadcast` events are queued and processed asynchronously, while `ShouldBroadcastNow` events are processed and broadcasted immediately.

The choice between `ShouldBroadcast` and `ShouldBroadcastNow` depends on the requirements of your application. If you need real-time updates and can't tolerate any delay, use `ShouldBroadcastNow`. If you can handle some delay in the broadcasting process, use `ShouldBroadcast` to take advantage of the asynchronous queue-based approach.

Citations:
[1] https://laracasts.com/discuss/channels/laravel/laravel-shouldbroadcastnow-real-time?reply=916220
[2] https://laracasts.com/discuss/channels/laravel/shouldbroadcast-and-shouldbroadcastnow?reply=933871
[3] https://www.reddit.com/r/laravel/comments/5gp499/shouldbroadcastnow_vs_shouldbroadcast/?rdt=49482
[4] https://laracasts.com/discuss/channels/laravel/events-shouldbroadcastnow-vs-shouldbroadcast
[5] https://code.tutsplus.com/how-laravel-broadcasting-works--cms-30500t