Aplicação de Chat em Laravel 10 com WebSockets
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.
-
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. -
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. -
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. -
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.
-
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.
- Instalar Dependências:
composer install
npm install
-
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
- Migração do Banco de Dados:
php artisan migrate
- Executar Servidor WebSockets:
php artisan websockets:serve
- Compilar Ativos:
npm run dev
- Iniciar Servidor de Desenvolvimento: (opcional, ignore caso esteja utilizando outro servidor web)
php artisan serve
-
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.
- Documentação Laravel WebSockets: Beyond Code
- Instalação do Lado do Cliente com Laravel Echo: Laravel Documentation
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!
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:
-
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
- 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.