Skip to content

[Feat] 쉼터 사용자용 SSE 엔드포인트 추가 요청 #55

Description

@Jinacker

✨ 어떤 기능인가요?

어떤 기능을 제안하는지 명확하게 설명해주세요.

예시: 사용자가 자신이 쉰 공간을 북마크할 수 있는 기능이 있었으면 좋겠어요.


🙋 왜 필요한가요?

이 기능이 필요한 이유 또는 해결하고 싶은 문제를 설명해주세요.

SSE 사용자용 엔드포인트 추가 요청

필요 이유

관리자가 kick → 백엔드가 rental-kicked 이벤트를 /sse/places/{placeId}로 전송 → 하지만 사용자는 이
채널을 구독하지 않음 → 사용자는 강퇴당한 것을 모름

현재 상황:

  1. /sse/places/{placeId} - 관리자(제공자)만 구독 가능
  2. 사용자(일반 유저)가 kick 당했을 때 알림을 받을 수 있는 SSE 엔드포인트가 없음

엔드포인트

  • GET /sse/users/me
  • 인증: Bearer {accessToken}
  • 응답: text/event-stream

이벤트 타입

  1. rental-kicked: 관리자가 강퇴했을 때
  2. rental-time-exceeded: 시간 초과로 자동 퇴장되었을 때

이벤트 데이터 형식

event: rental-kicked
data: {"rentalId": 123, "placeId": 1, "placeName": "스터디룸 A"}

event: rental-time-exceeded
data: {"rentalId": 123, "placeId": 1, "placeName": "스터디룸 A"}

event: ping
data: 1234567890

동작 방식

  • 현재 로그인한 사용자의 진행 중인 대여(USING) 상태 변경 감지
  • 상태가 KICKED 또는 TIME_EXCEEDED로 변경되면 즉시 이벤트 전송
  • 30초마다 ping으로 연결 유지

목적

관리자가 kick 버튼 누르면 → 사용자 화면(QR 인식 및 타이머 페이지)에 실시간 반영되어 자동 퇴장 처리


📌 참고사항 (선택)

비슷한 기능을 가진 앱, 서비스 사례나 링크가 있다면 추가해주세요.

예시: 네이버 지도에서도 '즐겨찾기' 기능이 있더라고요.

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions