24P by xguru 13일전 | ★ favorite | 댓글 2개
  • 쉽고, 빠르고, 안정적이며, 배터리 효율이 좋은 개방형 솔루션
  • 웹 브라우저 및 기타 HTTP 클라이언트에 데이터 업데이트를 푸시
  • 특히 웹 API를 통해 제공되는 리소스의 비동기/실시간 업데이트를 반응형 웹과 모바일 앱에서 표시하는 데 유용
  • 순수 HTTP 기반 : HTTP/2 이상의 프로토콜을 활용하여 양방향 통신 지원
  • 빠른 응답 시간과 낮은 지연
  • 별도 설치 없이 모든 환경에서 브라우저 호환성 제공
  • 간단한 발행 및 구독
    • 발행(Publish): 단순 POST 요청으로 처리
    • 구독(Subscribe): Server-Sent-Events(SSE)를 통해 실시간 업데이트 수신
  • 연결이 끊어질 경우 자동 재연결 및 누락된 메시지 재요청 지원
  • RESTful API 및 GraphQL을 위한 설계
  • JWT 인증을 통한 프라이빗 업데이트 제공
  • 사용자의 접속 상태를 확인할 수 있는 Presence API 제공. 구독 및 이벤트 상태 추적 가능
  • 이벤트 스토어: 발생한 이벤트를 저장 및 관리 가능
  • PHP 및 기타 서버리스 아키텍처와 호환
  • 데이터의 완전한 보안을 위한 E2EE(End-to-End Encryption) 제공
  • 프로덕션에서 사용가능한 수준의 Mercure Hub 레퍼런스 구현체 제공
    • 모든 Go 애플리케이션에서 허브 없이 직접 Mercure 프로토콜을 구현하는 데 사용할 수 있는 라이브러리와 공식 Docker 이미지가 함께 제공

같은 분이 만드신 FrankenPHP에 Mercure 구현체가 내장되어 있습니다.
https://news.hada.io/topic?id=15103

리얼타임 허브를 제공한다는 측면에서 대체제가 될 수 있는 Pushpin도 있습니다.
https://news.hada.io/topic?id=11377

Mercure보다 Pushpin이 더 직관적이라(ㅎㅎ... Mercure 문서 읽어보기가 너무 귀찮았습니다) 이전엔 Pushpin을 사용해 사이드 프로젝트를 진행했지만, 다음엔 이 친구를 사용해보고 싶네요.

SSE 기반이라면 단방향 통신인지, 아니면 웹소켓 처럼 양방향 통신을 지원하는지 궁금하네요! 😮
일단 나름대로 찾아본 걸로는 단방향 통신(서버->클라)만 지원하는 것 같긴한데... 🥺
https://medium.com/@sirajul.anik/…