# Server Requirement - Redis `sudo apt install redis-server` - Composer [here](https://getcomposer.org/download/) - npm `sudo apt install nodejs npm` - laravel-echo-server `npm install -g laravel-echo-server` # Laravel Dependencies Requirement - predis - laravel-echo - socket.io-client ^2.4.0 [issue](https://github.com/laravel/echo/issues/237#issuecomment-731308117) # Installation - Install fresh laravel via Composer `laravel new laravel-socket-io` - Go to Laravel directory `cd laravel-socket-io` - Add predis `composer require predis/predis` - Add laravel-echo and socket.io client `npm install --save laravel-echo socket.io-client@2.4.0` - Create laravel-echo-server configuration `laravel-echo-server init` - Specify `.env` ``` ... # Broadcast BROADCAST_DRIVER=redis ... # Redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 REDIS_CLIENT=predis REDIS_PREFIX="" ... # Laravel Echo Server LARAVEL_ECHO_SERVER_REDIS_HOST=127.0.0.1 LARAVEL_ECHO_SERVER_REDIS_PORT=6379 LARAVEL_ECHO_SERVER_REDIS_PASSWORD=null ``` - Create new file `resources/js/echo.js` ```js # echo.js import Echo from 'laravel-echo'; window.io = require('socket.io-client'); window.Echo = new Echo({ broadcaster: 'socket.io', host: window.location.hostname + ':6001' }); ``` - Add `require('./echo.js');` at bottom of file `resources/js/app.js` - Run `npm install` - Run `npm run dev` - Enable channel route, Uncomment `App\Providers\BroadcastServiceProvider::class,` - Add route `routes/channels.php` ```php ... Broadcast::channel('EveryoneChannel', function () { return true; }); ... ``` - Create new event `php artisan make:event EveryoneEvent` and edit ```php 'Hello!' ]; } } ``` - Add route for send and receiver broadcast at file `routes/web.php` ```php ... Route::get('/send', function () { broadcast(new App\Events\EveryoneEvent()); return response('Sent'); }); Route::get('/receiver', function () { return view('receiver'); }); ... ``` - Create new view `resources/views/receiver.blade.php` ```html