1717import io .f1 .backend .domain .game .dto .RoomEventType ;
1818import io .f1 .backend .domain .game .dto .request .RoomCreateRequest ;
1919import io .f1 .backend .domain .game .dto .request .RoomValidationRequest ;
20+ import io .f1 .backend .domain .game .dto .response .ExitSuccessResponse ;
2021import io .f1 .backend .domain .game .dto .response .GameSettingResponse ;
2122import io .f1 .backend .domain .game .dto .response .PlayerListResponse ;
2223import io .f1 .backend .domain .game .dto .response .RoomCreateResponse ;
@@ -168,9 +169,12 @@ public void exitRoom(Long roomId, String sessionId, UserPrincipal principal) {
168169
169170 Player removePlayer = getRemovePlayer (room , sessionId , principal );
170171
172+ String destination = getDestination (roomId );
173+
171174 /* 방 삭제 */
172175 if (isLastPlayer (room , sessionId )) {
173176 removeRoom (room );
177+ messageSender .send (destination , MessageType .EXIT_SUCCESS , new ExitSuccessResponse (true ));
174178 return ;
175179 }
176180
@@ -180,18 +184,18 @@ public void exitRoom(Long roomId, String sessionId, UserPrincipal principal) {
180184 }
181185
182186 /* 플레이어 삭제 */
183- removePlayer (room , sessionId , removePlayer );
187+ boolean isRemoved = removePlayer (room , sessionId , removePlayer );
184188
185189 SystemNoticeResponse systemNoticeResponse =
186190 ofPlayerEvent (removePlayer .nickname , RoomEventType .EXIT );
187191
188192 PlayerListResponse playerListResponse = toPlayerListResponse (room );
189193
190- String destination = getDestination (roomId );
191-
192194 messageSender .send (destination , MessageType .PLAYER_LIST , playerListResponse );
193195 messageSender .send (destination , MessageType .SYSTEM_NOTICE , systemNoticeResponse );
196+ messageSender .send (destination , MessageType .EXIT_SUCCESS , new ExitSuccessResponse (isRemoved ));
194197 }
198+
195199 }
196200
197201 public void handlePlayerReady (Long roomId , String sessionId ) {
@@ -307,9 +311,8 @@ private void changeHost(Room room, String hostSessionId) {
307311 log .info ("user_id:{} 방장 변경 완료 " , nextHost .getId ());
308312 }
309313
310- private void removePlayer (Room room , String sessionId , Player removePlayer ) {
311- room .removeUserId (removePlayer .getId ());
312- room .removeSessionId (sessionId );
314+ private boolean removePlayer (Room room , String sessionId , Player removePlayer ) {
315+ return room .removeUserId (removePlayer .getId ()) && room .removeSessionId (sessionId );
313316 }
314317
315318 private String getDestination (Long roomId ) {
0 commit comments