sql >> Databasteknik >  >> NoSQL >> Redis

Vill implementera webbsockets i Laravel

Du har använt pusher, så jag antar att du vet hur man använder event.

Jag rekommenderar dig laravel-echo-server. Det är väldigt lätt att använda, med ett inbyggt api.

Här är ett nytt exempel på ett laravel-eko-projekt från grunden. När du har ställt in projektet.

du behöver predis om du inte har installerat det ännu

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. kör npm install -g laravel-echo-server
  2. kör laravel-echo-server init
  3. avkommentera App\Providers\BroadcastServiceProvider::class i config/app.php
  4. lägg till <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> i din app.blade.php
  5. du behöver en socketio-klient, du kan köra npm install --save laravel-echo .Om du inte är bekant med npm eller vue kan du helt enkelt inkludera den här kompilerade filen från min github project.compiledjs
  6. lägg till detta i 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. kör slutligen laravel-echo-server start och öppna ditt projekt, du kommer att se

    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. du kan lyssna på vilket evenemang du vill eller andra meddelanden

  9. här är mitt github-projekt echo-exempel

lägg till en liten kod så att du kan använda postman skicka meddelande till specifik användare. Du kan se meddelandet från chrome console. Du kan få mer information från github-projektets skärmdumpar



  1. Node.js multi-server kluster:hur man delar objekt i flera nodkluster

  2. Mongoexport med $gt- och $lt-begränsningar på ett datumintervall

  3. Ska "StackExchange.Redis.ConnectionMultiplexer" vara "AddSingleton" eller "AddScope" i .NET Core-beroendeinjektion?

  4. Hur ansluter jag till MongoDB i Windows?