Redis
 sql >> Base de données >  >> NoSQL >> Redis

Vous souhaitez implémenter des sockets Web dans Laravel

Vous avez utilisé pusher, donc je suppose que vous savez comment utiliser event.

Je vous recommande laravel-echo-server. C'est très facile à utiliser, avec une API intégrée.

Voici un nouvel exemple d'un projet laravel-echo à partir de zéro. Après avoir configuré le projet.

vous aurez besoin de predis si vous ne l'avez pas encore installé

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. exécuter npm install -g laravel-echo-server
  2. exécutez laravel-echo-server init
  3. décommentez App\Providers\BroadcastServiceProvider::class dans config/app.php
  4. ajouter <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> dans votre app.blade.php
  5. vous avez besoin d'un client socketio, vous pouvez exécuter npm install --save laravel-echo .Si vous n'êtes pas familier avec npm ou vue, vous pouvez simplement inclure ce fichier compilé à partir de mon projet github.compiledjs
  6. ajoutez ceci à 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. enfin lancez laravel-echo-server start et ouvrez votre projet, vous verrez

    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. vous pouvez écouter n'importe quel événement que vous voulez ou d'autres notifications

  9. voici mon exemple d'écho de projet github

ajoutez un peu de code pour que vous puissiez utiliser le facteur envoyer un message à un utilisateur spécifique.Vous pouvez voir le message depuis la console chrome.Vous pouvez obtenir plus de détails à partir des captures d'écran du projet github