채팅 세션 종료는 프로토콜 exit와 TCP close를 두 단계로 처리한다

소켓 예외만으로 퇴장 이유를 표현하면 사용자 요청과 네트워크 단절을 구분하기 어렵습니다.

  1. 1

    /exit

    의도 프레임

  2. 2

    server ack

    퇴장 완료

  3. 3

    session close

    FIN

  4. 4

    registry remove

    한 번만

  5. 5

    broadcast

    퇴장 사건

핵심: 명시적 exit 응답 뒤 close하고, 비정상 종료는 registry 정리와 상대 알림을 멱등적으로 수행합니다.