25 pontos por xguru 2025-01-06 | 2 comentários | Compartilhar no WhatsApp
  • Solução aberta, fácil, rápida, estável e eficiente em consumo de bateria
  • Envia atualizações de dados para navegadores web e outros clientes HTTP
  • Especialmente útil para exibir atualizações assíncronas/em tempo real de recursos fornecidos por APIs web em aplicações web reativas e apps móveis
  • Baseado puramente em HTTP: usa protocolos HTTP/2 ou superiores para oferecer comunicação bidirecional
  • Tempo de resposta rápido e baixa latência
  • Compatibilidade com navegadores em todos os ambientes sem necessidade de instalação adicional
  • Publicação e assinatura simples
    • Publicação (Publish): processada com uma simples requisição POST
    • Assinatura (Subscribe): recebe atualizações em tempo real por meio de Server-Sent Events (SSE)
  • Suporta reconexão automática e nova solicitação de mensagens perdidas quando a conexão é interrompida
  • Projetado para APIs RESTful e GraphQL
  • Oferece atualizações privadas por meio de autenticação JWT
  • Fornece API de Presence para verificar o estado de conexão dos usuários. É possível rastrear estados de assinatura e eventos
  • Event store: permite armazenar e gerenciar os eventos ocorridos
  • Compatível com PHP e outras arquiteturas serverless
  • Oferece E2EE (criptografia de ponta a ponta) para segurança total dos dados
  • Fornece uma implementação de referência do Mercure Hub pronta para uso em produção
    • Também inclui uma biblioteca e imagem oficial Docker que podem ser usadas para implementar diretamente o protocolo Mercure sem hub em qualquer aplicação Go

2 comentários

 
jhj0517 2025-01-06

Fiquei curioso se, por ser baseado em SSE, a comunicação é unidirecional ou se também oferece suporte à comunicação bidirecional, como o WebSocket! 😮
Pelo que procurei até agora, parece que só suporta comunicação unidirecional (servidor -> cliente)... 🥺
https://medium.com/@sirajul.anik/…

 
nemorize 2025-01-06

A implementação do Mercure vem embutida no FrankenPHP, feito pela mesma pessoa.
https://pt.news.hada.io/topic?id=15103

Também existe o Pushpin, que pode ser uma alternativa no aspecto de oferecer um hub em tempo real.
https://pt.news.hada.io/topic?id=11377

Achei o Pushpin mais intuitivo que o Mercure (rs... eu tinha preguiça demais de ler a documentação do Mercure), então antes usei o Pushpin em um projeto paralelo, mas da próxima vez quero experimentar este aqui.