개발일지/C# 채팅 프로그램

20250701 개발 일지. 방 삭제 기능 버그 수정 및 구현 완료

박준희 2025. 7. 2. 12:06
728x90

점심쯤 옴
로비 입장, 방 입장 등 패킷은 본인 입장 전 로비, 방의 데이터를 주고 나중에 AnyUser 계열 패킷을 브로드캐스트 할 때 갱신하도록 구조 수정

 

# 버그
더미 클라이언트가 방을 만들었을 때 채팅 클라이언트도 같이 해당 방에 자동으로 들어가지는 버그가 생김 -> 로비 진입 관련 수정 중 생긴 버그인 듯하고 개선 완료하면서 해결됨

 

# 버그 2
방 삭제 기능 채팅 클라이언트 유저 목록 동기화가 안됨
더미 클라이언트만 사용해서 로그를 확인

-> 방 삭제 패킷을 방에 있던 유저들에게 보내고 로비에 있는 유저들에게 방에 있던 유저 만큼 반복해서 로비 진입 패킷을 보냈는데 클라이언트 중 일부가 로비 진입 패킷을 먼저 받고 방 삭제 패킷을 받은 클라이언트가 존재

-> 방 삭제 같은 경우 여러 유저가 한꺼번에 나오는 만큼 일반적인 입장 퇴장 패킷의 사용은 힘들 것 같음

-> 방 삭제 시 방에 있던 유저들을 한 패킷에 담아 보내도록 수정

 

# 방 삭제 기능 사용 시 필요한 동작
방에 있던 유저들
- 방 목록, 퇴장한 유저가 포함된 유저 목록
- 화면 전환, 방과 유저 목록 갱신
로비에 있던 유저들
- 퇴장한 유저 목록, 방 아이디
- 해당 방 제거
- 로비 유저 목록 갱신

 

# 일지
방 삭제 기능 구현 완료
방장은 나가기 버튼이 비활성화되도록 수정 필요 -> 수정 완료

 

# 할 일
종료 시 방 또는 로비에서 제거되고 세션매니저에서도 제거되도록 구현 필요
하트비트를 통해 연결 유지 확인 기능 구현 필요

 

# 기능 시연 GIF

 

# 깃 허브

서버

https://github.com/junhee-park/ChatingServer/tree/71be92401691781605bfc5f47b78ddae27575066

클라이언트

https://github.com/junhee-park/ChatClient/tree/3aabe776c28e2d4fa971ad9588dbd7296e510edb

728x90