Spring Boot - SockJS ?

React Native - Stomp

Event Description
join 게시글 접속 시 유저 정보
vote 투표 정보
revote 다시 투표한 정보
leave 게시글 떠나는 유저 정보
error 에러 정보
disconnect 연결이 끊어졌을 때

사용자가 게시글에 접속했을 때

@Mia가 정리한 내용

투표 Map 투표항목 [배열] 투표 옵션 메타 데이터
투표항목 List 투표항목ID 이름 투표자 수 득표 비율 투표자 [배열]
투표자 List 투표자ID 이름 프로필
투표옵션 Map 익명 여부 다중 선택 여부
메타데이터 Map 종료일자 총 투표자 수 총 투표자 [배열]
총 투표자 List 투표자ID 이름 프로필

Figma

Figma

투표 마감 o

웹소켓 연결 x

투표 마감 x

join 이벤트로 연결

{
	type: 'join'
	// 유저 정보
	userId: 1,
	// 게시판 정보
	boardId: 100,
}

항목 선택 후 투표하기 버튼 클릭했을 때

vote 이벤트로 user 정보와 투표 항목 전송

{
	type: 'vote'
	// 유저 정보
	userId: 1,
	// 게시판 정보
	boardId: 100,
	// 투표 항목
	voteId: 1,
}

다시 투표하기 클릭

흠… 굳이 revote라는 이벤트를 추가하지 않고 vote 이벤트로 전달하고, 서버 측에서 같은 유저의 정보가 날라오면 변경하는 것이 좋을지?

아니면 revote라는 이벤트를 가지고 revote로 넘어오는 정보는 다시 투표한 정보라는 명확한 쪽이 나을지?