Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Möchten Sie Web-Sockets in Laravel implementieren

Sie haben Pusher verwendet, also nehme ich an, dass Sie wissen, wie man event verwendet.

Ich empfehle Ihnen Laravel-Echo-Server. Es ist sehr einfach zu bedienen, mit einer eingebauten API.

Hier ist ein neues Beispiel für ein Laravel-Echo-Projekt von Grund auf neu. Nachdem Sie das Projekt eingerichtet haben.

Sie benötigen Predis, wenn Sie es noch nicht installiert haben

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. führen Sie npm install -g laravel-echo-server aus
  2. führen Sie laravel-echo-server init aus
  3. kommentieren Sie App\Providers\BroadcastServiceProvider::class aus in config/app.php
  4. fügen Sie <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> hinzu in Ihrer app.blade.php
  5. Sie benötigen einen Socketio-Client, Sie können npm install --save laravel-echo ausführen .Falls Sie mit npm oder vue nicht vertraut sind, können Sie einfach diese kompilierte Datei aus meinem github project.compiledjs einbinden
  6. füge dies zu app.blade.php hinzu

    <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. Führen Sie schließlich laravel-echo-server start aus und öffnen Sie Ihr Projekt, Sie werden

    sehen
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. Sie können jedes gewünschte Ereignis oder andere Benachrichtigungen anhören

  9. Hier ist mein Echo-Beispiel für mein GitHub-Projekt

fügen Sie einen kleinen Code hinzu, damit Sie mit Postman eine Nachricht an einen bestimmten Benutzer senden können. Sie können die Nachricht von der Chrome-Konsole aus sehen. Weitere Details können Sie den Screenshots des Github-Projekts entnehmen