사용자 세션 상태 전이

같은 명령도 현재 상태에 따라 허용 결과가 달라진다.

1

CONNECTED

/join만 상태를 활성화한다.

undefined

2

JOINED

message, users, change를 수행할 수 있다.

undefined

3

RENAMING

이름 유일성 확인 뒤 원자 교체한다.

undefined

4

CLOSING

/exit 또는 장애 뒤 새 명령을 받지 않는다.

undefined

핵심: 이름 변경 실패에서는 기존 이름과 참가 상태를 보존한다.