How do I fix the error 'WebSocket is closed before the connection is established'?
Richard C.
—When using the Laravel WebSockets package from Beyond Code (or another framework or language), you might get this error:
WebSocket is closed before the connection is established
How do you fix this error?
The WebSockets package from Beyond Code is obsolete and no longer maintained. If possible, upgrade your project to Laravel Reverb, the official WebSockets package. Upgrading won’t fix the connection error, however.
If your WebSocket server is running correctly, then the error is probably caused by the browser port not matching the server port. First, check to see which port is in use in your websockets.php
file. For example:
<?php use BeyondCode\LaravelWebSockets\Dashboard\Http\Middleware\Authorize; return [ /* * Set a custom dashboard configuration */ 'dashboard' => [ 'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001), ],
Check that the port matches the port used in your JavaScript code. You might need to look in a JSON or .env
file.
If you are using Docker, check in your docker-compose.yaml
file that the WebSocket server port is exposed to your physical machine.
For example, the following services
section of a docker-compose.yaml
file might look like this if the 7770
port is on your physical machine and the 6001
port is in the container:
services: app: container_name: lara image: docker.io/bitnami/laravel:8 ports: - '7770:6001'
Remember that the Laravel port is different from the WebSocket port. They are separate services.
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.