To ensure the WebSocket server port is correctly exposed in Docker, follow these steps:
Step 1: Configure the Docker Compose File
1. Expose the Port:- In your `docker-compose.yml` file, add the following lines to expose the WebSocket server port:
yaml
services:
websockets:
image: beyondcode/laravel-websockets
ports:
- "6001:6001"
Step 2: Configure the Laravel WebSockets Configuration
1. Update the Configuration:- Ensure that the WebSocket server port is correctly set in your `websockets.php` file:
php
'host' => env('LARAVEL_WEBSOCKETS_HOST', 'localhost'),
'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001),
Step 3: Configure the Pusher Configuration
1. Update the Pusher Configuration:- Ensure that the Pusher configuration is correctly set in your `broadcasting.php` file:
php
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
'host' => env('LARAVEL_WEBSOCKETS_HOST'),
'port' => env('LARAVEL_WEBSOCKETS_PORT'),
'scheme' => 'http',
],
],
Step 4: Verify the WebSocket Connection
1. Verify WebSocket Connection:- Use a tool like `wscat` to test the WebSocket connection:
bash
wscat -c ws://localhost:6001
Step 5: Verify the Laravel Configuration
1. Verify Laravel Configuration:- Ensure that the `BROADCAST_DRIVER` is set to `pusher` in your `.env` file:
bash
BROADCAST_DRIVER=pusher
Step 6: Verify the Pusher Configuration
1. Verify Pusher Configuration:- Ensure that the Pusher configuration is correctly set in your `.env` file:
bash
PUSHER_APP_KEY=your_app_key
PUSHER_APP_SECRET=your_app_secret
PUSHER_APP_ID=your_app_id
By following these steps, you can ensure that the WebSocket server port is correctly exposed in Docker and that your Laravel application is configured to use the WebSocket server correctly.
Citations:[1] https://github.com/laradock/laradock/issues/2002
[2] https://www.heondokim.com/articles/laravel-websockets-nginx-docker
[3] https://laracasts.com/discuss/channels/laravel/laravel-websocket-failed-to-connect-to-127001-port-6001-on-docker?reply=880224
[4] https://www.reddit.com/r/laravel/comments/nzjhmy/laravel_websockets_apache2_docker/?rdt=60559
[5] https://laravelgeek.com/posts/building-real-time-applications-with-laravel-websockets-a-comprehensive-guide