Skip to content

marcos-queiroz/laravel-chat-websocket

Repository files navigation

Aplicação de Chat em Laravel 10 com WebSockets

Visão Geral:

Esta aplicação Laravel 10 apresenta uma funcionalidade de chat em tempo real usando WebSockets, alimentada por beyondcode/laravel-websockets e Echo para o frontend. A aplicação aproveita as capacidades de transmissão ao vivo do Laravel para permitir uma comunicação contínua entre o servidor e os clientes.

Componentes Principais:

  1. Configuração de Transmissão ao Vivo:

    A aplicação está configurada para usar o Laravel Echo e o Pusher para transmitir eventos. O BroadcastServiceProvider é utilizado para configurar a transmissão.

  2. Tratamento de Eventos em Tempo Real:

    O evento App\Events\Chat\SendMessage é implementado para capturar mensagens enviadas pelos usuários. Este evento é transmitido para o servidor WebSocket e, posteriormente, para os clientes conectados.

  3. Servidor WebSockets:

    O pacote beyondcode/laravel-websockets alimenta o servidor WebSocket. Ele permite o manuseio eficiente da comunicação em tempo real, garantindo uma experiência de chat fluida.

  4. Frontend Vue JS:

    O frontend é desenvolvido usando o Vue JS para criar uma interface de chat interativa e responsiva. O componente Vue se comunica com o servidor usando o Laravel Echo para atualizar mensagens em tempo real.

  5. MessageController:

    O MessageController lida com a lógica para listar e enviar mensagens. Ele orquestra o fluxo de dados entre o servidor e os componentes Vue.

Uso:

  1. Instalar Dependências:
   composer install
   npm install
  1. Configuração do Ambiente:

    Configure as variáveis de ambiente, incluindo as credenciais do Pusher além das variáveis de conexão com o banco de dados, no arquivo .env.

    BROADCAST_DRIVER=pusher

    PUSHER_APP_ID=myapppid
    PUSHER_APP_KEY=myappkey
    PUSHER_APP_SECRET=myappsecret
    PUSHER_HOST="127.0.0.1"
    PUSHER_PORT=6001
    PUSHER_SCHEME=http
    PUSHER_APP_CLUSTER=mt1
  1. Migração do Banco de Dados:
   php artisan migrate
  1. Executar Servidor WebSockets:
   php artisan websockets:serve
  1. Compilar Ativos:
   npm run dev
  1. Iniciar Servidor de Desenvolvimento: (opcional, ignore caso esteja utilizando outro servidor web)
   php artisan serve
  1. Acessar a Aplicação: (caso utilize o artisan serve)

    Visite http://127.0.0.1:8000 no seu navegador e aproveite a funcionalidade de chat em tempo real.

Referências:

Notas Adicionais:

  • Ajuste a configuração do Pusher no arquivo .env de acordo com os detalhes da sua conta do Pusher.
  • Certifique-se de que seu driver de transmissão (por exemplo, Pusher) está configurado corretamente e acessível.

Sinta-se à vontade para explorar e estender esta aplicação de chat Laravel 10 para atender às necessidades do seu projeto. Boa codificação!

Extra

Backup da Base de Dados com Spatie Laravel Backup

Esta aplicação inclui o pacote spatie/laravel-backup, que fornece uma maneira fácil e confiável de fazer backup da base de dados. Os backups são armazenados no diretório storage/app do projeto Laravel. Para habilitar e usar essa funcionalidade:

  1. Criar Link Simbólico do Storage:

    Laravel utiliza links simbólicos para armazenar e acessar arquivos de forma eficiente. Para criar um link simbólico entre o diretório público e o storage, execute:

   php artisan storage:link
  1. Executar Backup:

Para criar um backup da sua base de dados, execute o seguinte comando Artisan:

   php artisan backup:run

Esse comando cria um backup da base de dados e o armazena no diretório configurado (storage/app por padrão).

Notas Importantes:

  • As configurações de backup podem ser personalizadas no arquivo config/backup.php.
  • Verifique regularmente seus backups para garantir que estão sendo executados corretamente.
  • Para mais informações sobre o pacote Spatie Laravel Backup, consulte a documentação oficial.

Com esses passos, você pode facilmente manter backups regulares da sua base de dados, garantindo a segurança e a integridade dos seus dados.

About

Small Project Demonstrating the Use of Laravel WebSocket

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages