모든 메세지 interface들은 `server/message/types.ts`에 정의되어 있습니다.
클라이언트에서 `emit`을 사용하여 전송한 모든 메세지에 대해 서버는 `MessageResponse`로 처리 결과를 알립니다. 자세한 사항은 https://socket.io/docs/v4/emitting-events/ 의 `Acknowledgements` 항목을 참조하세요. 요청이 성공하였을 때, 요청에 대한 결과 메세지가 해당 요청의 `MessageResponse`보다 먼저 도착할 수 있습니다 (확인 바람).
클라이언트에서 `emit`을 사용하여 전송한 모든 메세지에 대해 서버는 `MessageResponse`로 처리 결과를 알립니다. 자세한 사항은 https://socket.io/docs/v4/emitting-events/ 의 `Acknowledgements` 항목을 참조하세요. 만약 요청에 대한 결과가 즉시 필요한 경우 `MessageResponse.result`로 결과가 전달됩니다.
메세지 타입과 그에 대한 결과 타입은 `server/message/types.ts`를 참고하세요.
## 로그인
...
...
@@ -12,12 +14,10 @@
로비에서는 모든 방 목록을 확인하고 접속할 수 있습니다. 로그인에 성공하면 서버에서 `RoomListMessage`가 전송됩니다. 이 메세지는 모든 방에 관한 정보를 가지고 있습니다. 각 방은 고유한 `uuid`값으로 구분됩니다.
특정한 방에 접속하기 위해서는 서버에 `RoomJoinMessage`를 보내면 됩니다.
특정한 방에 접속하기 위해서는 서버에 `RoomJoinMessage`를 보내면 됩니다. 요청이 성공하면 `RoomInfo`가 반환됩니다. `RoomInfo`에는 본인을 제외한 다른 플레이어들의 정보만이 담겨 있습니다.
### 방
방 접속에 성공하면 `RoomInfoMessage`가 수신됩니다. 이 메세지는 현재 방에 접속 중인 모든 유저의 정보를 가져옵니다. 모든 유저는 고유한 `username`을 가지므로, 앞으로 모든 메세지는 유저의 `username`만이 전송됩니다.
방에 접속중인 유저의 목록에 변화가 생기면, `RoomUserUpdateMessage`가 수신됩니다. `state`는 다음 3가지 값 중 하나의 값을 가집니다.