Redis
 sql >> Database >  >> NoSQL >> Redis

Vuoi implementare socket web in Laravel

Hai usato pusher, quindi suppongo tu sappia come usare event.

Ti consiglio laravel-echo-server. È molto facile da usare, con un'API integrata.

Ecco un nuovo esempio di un progetto laravel-echo da zero. Dopo aver impostato il progetto.

avrai bisogno di predis se non l'hai ancora installato

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. esegui npm install -g laravel-echo-server
  2. esegui laravel-echo-server init
  3. decommenta App\Providers\BroadcastServiceProvider::class in config/app.php
  4. aggiungi <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> nella tua app.blade.php
  5. hai bisogno di un client socketio, puoi eseguire npm install --save laravel-echo .Nel caso in cui non hai familiarità con npm o vue, puoi semplicemente includere questo file compilato dal mio github project.compiledjs
  6. aggiungilo a app.blade.php

    <script>
    window.Echo = new Echo({
    broadcaster: 'socket.io',
    
    host: '{{url('/').':6001'}}',
    });
    Echo.private(`App.User.{{Auth::id()}}`) // private channel
    .listen('NewMessage', (e) => {
        console.log(e)
    
    });
    
    
    </script>
    
  7. finalmente esegui laravel-echo-server start e apri il tuo progetto, vedrai

    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. puoi ascoltare qualsiasi evento tu voglia o altre notifiche

  9. ecco il mio esempio di eco del progetto github

aggiungi un piccolo codice in modo da poter utilizzare il postino invia il messaggio a un utente specifico. Puoi vedere il messaggio dalla console di Chrome. Puoi ottenere maggiori dettagli dagli screenshot del progetto github