Via Composer
$ composer require braiphub/messenger-laravel
$ php artisan vendor:publish --tag=messenger.config
Para instalação compatível com Composer 1, forçar a busca no repositório do GitHub em composer.json
:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/braiphub/messenger-laravel"
}
]
}
Para enviar uma mensagem basta emitir um Evento normal do Laravel com o contrato Braip\Messenger\Contracts\ShouldMessage
.
use Braip\Messenger\Contracts\ShouldMessage;
class EventoTesteEnviado implements ShouldMessage
{
public function messageWith(): array
{
return [
// payload que vai ser enviado para os outros sistemas
];
}
}
event(new EventoTesteEnviado());
Colocar no EventServiceProvider o evento desejado com o prefixo Messenger:
. O listener vai receber um objeto do tipo Braip\Messenger\Events\MessageReceived
como evento.
//EventServiceProvider.php
protected $listen = [
'Messenger:{nomeDoEvento}' => [
// Listeners
]
];
class ListenerExemplo
{
public function handle($event)
{
$event->payload;
$event->eventType;
}
}
Utilize o comando php artisan messenger:work
para conectar a fila(SQS) e buscar as mensagens para processar.
Em produção você pode utilizar o Supervisor para agendar execução.(Material de apoio para configuração)