Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Quer implementar web sockets no Laravel


Você tem usado pusher, então suponho que você saiba como usar event.

Eu recomendo você laravel-echo-server. É muito fácil de usar, com uma API embutida.

Aqui está um novo exemplo de um projeto laravel-echo do zero. Depois de configurar o projeto.

você precisará de predis se ainda não o instalou
composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. execute npm install -g laravel-echo-server
  2. execute laravel-echo-server init
  3. descomente App\Providers\BroadcastServiceProvider::class em config/app.php
  4. adicione <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> em seu app.blade.php
  5. você precisa de um socketio-client, você pode executar npm install --save laravel-echo .Caso você não esteja familiarizado com npm ou vue, você pode simplesmente incluir este arquivo compilado do meu github project.compiledjs

  6. adicione isso 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 execute laravel-echo-server start e abra seu projeto, você verá
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    

  8. você pode ouvir qualquer evento que quiser ou outras notificações

  9. aqui está meu exemplo de eco do projeto github

adicione um pequeno código para que você possa usar o postman send message para um usuário específico. Você pode ver a mensagem no console do chrome. Você pode obter mais detalhes nas capturas de tela do projeto do github