-
20250625 개발 일지. 방 생성 및 입장 버그 수정개발일지/C# 채팅 프로그램 2025. 6. 26. 12:55728x90
점심 먹고옴
# 방 생성 버그 확인
방 생성 시 로비에 유저가 지워지는 것은 확인했는데 입장하니 유저가 전부 같은 닉네임을 사용하고 유저가 3명
더미 클라이언트 로그가 C_CreateRoom Send Complete! 가 뜨는거 보면 채팅 클라이언트 입장 버튼 누를 시 방을 입장하는게 아니라 생성하는 듯
-> 로그 표시를 잘못한 것 같다
더미 클라이언트 방생성 -> 채팅 클라이언트 방 입장 -> 더미 클라이언트 방 입장 -> 채팅 클라이언트에서 유저 목록이 갱신이 안됨# 더미 클라이언트 기능 누락 수정
더미 E키(C_RoomList 패킷) 룸 리스트 표시 안함 -> 표시 하도록 수정
# 룸 입장 버그 확인
채팅 프로그램 로비 입장 -> 더미 클라 로비 입장 -> 채팅 클라 방 생성 및 입장 -> 더미 클라 해당 방 입장
-> 채팅 클라 유저 리스트 갱신이 안됨 -> 더미 클라 방 유저 리스트 취득에서 아무도 없다고 표시 f 키 (현재 메모리에 관리중인 CurrentRoom에 접근) -> g키 (C_UserList 패킷 전송) 로는 갱신 됨
채팅 클라 뷰매니저부분 확인 필요
F키 패킷 G키 패킷 전송부분 확인 필요
F키 -> S_EnterRoom 핸들러 부분에 RoomManager의 현재 룸 설정을 안해서 현재 있는 장소가 로비로 취급됨
G키 -> 현재 방의 유저 리스트를 받아 표시
# 채팅 클라이언트 동작 회고
채팅 클라 방을 생성하고 더미 클라가 입장해서 뷰매니저가 유저리스트를 갱신할 때 뷰 객체의 방 목록이 0개 -> 뷰 객체 초기화는 방 목록을 가져올때만 초기화하는데 왜 1개가 아니라 0개인지 모르겠음 -> 생각해보니 0개 인 것이 맞음. 방에 있을 경우 방 외부에 데이터 패킷을 안 받도록 구현했었음# 채팅 클라이언트 채팅 방 유저목록 버그 수정
RoomManager CurrentRoom 기준으로 null이면 방 목록 뷰모델 객체 갱신 null이 아닌 경우 채팅 방 유저 뷰모델 객체 갱신하도록 수정
-> 수정 했는데 유저 닉네임이 2개씩 추가됨 -> SEnterRoomAnyUser 패킷을 두번 보내는 것을 확인 -> 서버 C_EnterRoom 핸들러에서 방에 유저를 추가할 때 로비에서 유저를 제거하지 않아 룸 브로드캐스트와 로비 브로드캐스트 때 두번 패킷을 받아 문제가 발생함# 방장에게 유저 입장 패킷이 두번 오는 버그 수정
방장한테는 SEnterRoomAnyUser 패킷이 두번 오는 문제 발생 -> 서버 CCreateRoom 패킷 처리 핸들러에서 로비 유저 목록에 방장 유저를 제거하지 않음# 방장에게 방 생성 패킷이 오지 않던 버그 수정
방장에게 SCreateRoom 패킷이 오지 않음 -> CCreateRoom 패킷이 서버에 오면 로비에 있는 모든 인원에게 SCreateRoom패킷을 보내는데 로비 브로드캐스트 전에 방장을 제거하여 문제 발생
# 내일 할 일
메세지 전송 기능 채팅클라이언트와 연동# 깃 주소
클라이언트
https://github.com/junhee-park/ChatClient/tree/a2e228310d7c28a5b08af75677c339f7a4a37fb3
서버
https://github.com/junhee-park/ChatingServer/tree/7a785d358dbd6fa82870492ff416eedfae2fe8d4
728x90'개발일지 > C# 채팅 프로그램' 카테고리의 다른 글
20250624 개발 일지. WPF 버튼 학습 및 로비 유저 목록 버그 수정 (0) 2025.06.25 20250623 개발 일지. 닉네임 변경 기능 버그 수정 및 깃 사용 이슈 (0) 2025.06.25 20250620 개발 일지. 버그 수정 및 패킷 설계 고민 (2) 2025.06.24 20250619 개발 일지. 프로토버프 제로카피 게시글 읽기 및 뷰매니저 작성 (0) 2025.06.24 20250618 개발 일지. WPF 작업 및 버그 수정 (0) 2025.06.24