Tuesday, March 19, 2024

How to Use Laravel 11, Laravel Reverb and Laravel Sail

 


With the release of Laravel 11, developers now have access to Reverb — a WebSocket server designed specifically for Laravel applications. In this blog post, we'll explore how Reverb enables seamless real-time communication and how you can integrate it into your Laravel projects.

A Promising Alternative to Pusher and Soketi:

With the beta release of Reverb alongside Laravel 11, developers have gained a promising alternative to existing services such as Pusher, Ably, and Soketi. Reverb offers a WebSocket server tailored specifically for Laravel applications, providing efficient and reliable real-time communication capabilities.

If you've previously used Laravel Sail, Docker-based development environment for Laravel applications, you may have encountered Soketi. However, Reverb aims to offer a more streamlined and feature-rich solution for real-time communication needs in Laravel projects.

Getting Started with Reverb:

To start using Reverb in your Laravel applications, follow these simple steps:

Update docker-compose.yml:

Begin by adding port 8080 to the docker-compose.yml file of your Laravel project. This allows Reverb to listen for WebSocket connections within your Docker environment.

services:

    laravel.test:

        build:

            context: ./docker/8.3

            dockerfile: Dockerfile

            args:

                WWWGROUP: '${WWWGROUP}'

        image: sail-8.3/app

        extra_hosts:

            - 'host.docker.internal:host-gateway'

        ports:

            - '${APP_PORT:-80}:80'

            - '${VITE_PORT:-5173}:${VITE_PORT:-5173}'

            - '${REVERB_SERVER_PORT:-8080}:8080'

Configure Supervisor:

Next, configure the service startup using Supervisor by adding configuration to the docker/8.3/supervisord.conf file. This ensures that Reverb is launched alongside your Laravel application within the Docker environment.

[supervisord]

nodaemon=true

user=root

logfile=/var/log/supervisor/supervisord.log

pidfile=/var/run/supervisord.pid

minfds=10000


[program:php]

command=%(ENV_SUPERVISOR_PHP_COMMAND)s

user=%(ENV_SUPERVISOR_PHP_USER)s

environment=LARAVEL_SAIL="1"

stdout_logfile=/dev/stdout

stdout_logfile_maxbytes=0

stderr_logfile=/dev/stderr

stderr_logfile_maxbytes=0


[program:reverb]

command=php /var/www/html/artisan reverb:start --host="0.0.0.0" --port=8080

autostart=true

autorestart=true

user=%(ENV_SUPERVISOR_PHP_USER)s

redirect_stderr=true

stdout_logfile=/var/www/html/storage/logs/reverb.log

Conclusion

With the introduction of Reverb, Laravel developers now have a powerful tool at their disposal for implementing real-time communication in their applications. By seamlessly integrating Reverb into your Laravel projects, you can unlock a whole new level of interactivity and responsiveness. So why wait? Start harnessing the power of Reverb in your Laravel applications today and take your real-time communication capabilities to the next level.

0 comments:

Post a Comment