EU Cookie Consent

To use this Website we are using Cookies and collecting some Data. To be compliant with the EU GDPR we give you to choose if you allow us to use certain Cookies and to collect some Data.

Essential Data

The Essential Data is needed to run the Site you are visiting technically. You can not deactivate them.


Setup beyondcode/laravel-websockets with Laravel forge

Max Hutschenreiter -

Laravel-websockets package by beyondcode brings the power of WebSockets to your Laravel application. It’s a great free pusher replacement and it offers SSL and Laravel Echo support.

It’s really easy to set it up and replace pusher on your local project.

When I tried to implement it into a live project driven by Laravel forge, it was not a perfectly easy cause of Laravel forge limitations so I will share a workaround on that.

Laravel forge doesn’t allow you to add multiple server blocks within one site so it’s not possible to add another server directive that runs on a different port (6001 by default), so we will create another site with another Laravel instance and proxy pass from 443 to port 6001 on that instance.

The first thing to do is to extend .env file on live project that will work as sockets client:
And then on your domain
Then on the domain that acts as sockets server, update the Nginx location block to the following:
location / { 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $remote_addr; 
The next step is to set up a fresh Laravel instance on the sockets server and integrate Laravel-websockets package

when that’s done, add the Daemon process that will ensure running sockets server 24/7:
php artisan websockets:serve --port=6001
Once you get to the point where your returns 404 (which is a good sign) , update your main project bootstrap.js file with
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js'); 
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'whatever',
    wsHost: '',
    wsPort: 443,
    disableStats: true,
    scheme: 'https'
And in broadcasting.php
'cluster' => env('PUSHER_APP_CLUSTER'),
'host' => env('PUSHER_APP_HOST'),
'port' => env('PUSHER_APP_PORT'),
'encrypted' => true,
'scheme' => 'https'
So by the end of the process, you should have two separate sites. Both of them have beyondcode/laravel-websockets package integrated, but one acts as a client (main application) and one acts as a sockets server (

Env pusher secret details need to be the same for both and that’s it.

Tags: Laravel · Websockets · Beyondcode · Forge

Want products news and updates?

Sign up for our newsletter to stay up to date.

We care about the protection of your data. Read our Privacy Policy.

Impressions from our Team

  • Happy Birthday Ognjen! And marry Christmas to all other 🎄#notacakeshop - #

  • #Office #Garden - #

  • #workhard - #

  • #belgrade #skyline - #

  • #happybirthday Phil :) - #

  • #happybirthday Stefan 🥂 - #

  • #happybirthday Lidija 🍾 - #

  • Say hi 👋 to our newest team member ☕️ - #

  • #bithday #cake 😻 - #

  • #stayathome #homeoffice #42coders - #

  • #stayathome #homeoffice #42coders #starwars :) - #

  • #stayathome #homeoffice #42coders - #

  • We had a really nice time with #laracononline #laravel - #

  • Happy Birthday 🎂 Miloš - #

  • Happy Birthday 🎂Nikola - #

  • #42coders #christmas #dinner what a nice evening :) - #

  • Happy Birthday 🎂 Ognjen - #

  • Wish you all a merry Christmas 🎄🎁 - #

  • #happybirthday Luka! - #

  • Triff dich mit Menschen aus deiner Umgebung die deine Interessen teilen :) Wir sind gerade live gegangen und freuen uns über jede neue Community die zu uns kommt ❤️ - #

© 2021 42coders All rights reserved.