전체 글
-
20250703 개발 일지. 부하 테스트 및 버그 수정개발일지/C# 채팅 프로그램 2025. 7. 4. 13:06
점심쯤 옴 뷰모델과 데이터 모델을 분리작업을 통해 S_EnterRoomAnyUser 패킷 관련 딕셔너리 중복 추가 문제가 사라졌지만 방에 입장하는 유저가 로비에서 사라지지 않는 문제가 생김 방에서 유저 제거 확인 # 방 유저 목록 키 중복 에러로비에 있던 유저들이 에러가 발생-> 방 인포의 유저 인포 삭제 타이밍을 확인할 필요가 있음-> 현재 유저가 방을 떠날 때 로비에 있는 유저들에게는 S_EnterLobbyAnyUser 패킷을 보내 방을 떠난 유저는 알 수 있지만 어디서 왔는지(방에서 떠나서 로비로 왔는지 처음 접속을 통해 로비에 왔는지)를 모름-> 만약 방에서 왔다면 동기화를 위해 어느 방에서 왔는지 확인하고 룸매니저에 해당 룸에 유저를 삭제하는 작업이 필요한데 누락되어 있음 -> 기존은 로비에 ..
-
20250702 개발 일지. 하트비트 기능 개발 및 버그 수정개발일지/C# 채팅 프로그램 2025. 7. 3. 12:52
점심쯤 옴 콘솔 종료 시 연결 해제 및 정리 콘솔에서 x키로 닫을 시 서버에 connectionReset 패킷이 도착 # 방장이 강제종료할 경우 처리 구현 중 버그 발생 로비에 유저 목록이 두번 표시됨 -> 브로드캐스트전 강제종료한 유저를 제거했더니 정상 처리됨 # 하트비트를 통해 연결 유지 확인 기능 구현 구상클라이언트 세션에 마지막 리시브 작업 시간 저장-> 30초마다 핑 패킷 전송 기능 실행-> 세션 중 30초내 리시브 작업이 없는 세션에게 핑 패킷 전송-> 퐁 패킷을 받으면 세션내 bool 값을 변경-> 다시 핑 패킷을 보내는 작업에서 bool 값이 변경되어 있지 않다면 퐁 패킷을 못 받은 것이므로 연결 해제 진행 하트 비트 주기를 5초로 설정하고 더미 클라이언트에 중단점을 걸어 5초이상 지연시켜..
-
20250701 개발 일지. 방 삭제 기능 버그 수정 및 구현 완료개발일지/C# 채팅 프로그램 2025. 7. 2. 12:06
점심쯤 옴로비 입장, 방 입장 등 패킷은 본인 입장 전 로비, 방의 데이터를 주고 나중에 AnyUser 계열 패킷을 브로드캐스트 할 때 갱신하도록 구조 수정 # 버그더미 클라이언트가 방을 만들었을 때 채팅 클라이언트도 같이 해당 방에 자동으로 들어가지는 버그가 생김 -> 로비 진입 관련 수정 중 생긴 버그인 듯하고 개선 완료하면서 해결됨 # 버그 2방 삭제 기능 채팅 클라이언트 유저 목록 동기화가 안됨 더미 클라이언트만 사용해서 로그를 확인-> 방 삭제 패킷을 방에 있던 유저들에게 보내고 로비에 있는 유저들에게 방에 있던 유저 만큼 반복해서 로비 진입 패킷을 보냈는데 클라이언트 중 일부가 로비 진입 패킷을 먼저 받고 방 삭제 패킷을 받은 클라이언트가 존재-> 방 삭제 같은 경우 여러 유저가 한꺼번에 나오..
-
20250630 개발 일지. 방 퇴장 테스트, 방 삭제 구현 및 버그 수정개발일지/C# 채팅 프로그램 2025. 7. 1. 12:58
점심쯤 옴 # 방 퇴장 테스트 다시 진행퇴장 시 더미 클라이언트에서 문제 로그 표시됨 -> 떠난 방에 유저 본인이 그대로 남아있음 -> 떠난 방에 유저 본인을 없앨 이유가 없었음. 어차피 퇴장할 경우 로비로 가서 새로운 방 목록을 가져오기 때문에 참조를 제거하고 사라질 방 객체 같은 방에 있던 채팅 클라이언트에도 남아있음.서버 상태는 제대로 반영되어 있음 -> 서버 패킷 반환도 제대로 이루어지고 있는데 유저 정보에 유저 아이디가 없는 경우가 있음.클라이언트 뷰매니저 ShowRemovedUser 함수는 userid 기준으로 제거하는데 유저 아이디가 없어서 지울 게 없어 문제가 생긴 것 같음-> ShowRemovedUser 메소드는 방 아이디와 유저 아이디를 기준으로 뷰 모델인 Rooms에서 유저 아이디 기..
-
20250627 개발 일지. 에러 및 버그 수정, 퇴장 기능 작업개발일지/C# 채팅 프로그램 2025. 6. 30. 12:54
점심쯤 옴RoomInfo 프로토버프 패킷 구조 변경 완료 # 에러유저 목록에 키 중복 에러가 발생 -> S_EnterRoomAnyUserHandler에서 받은 패킷의 유저 데이터를 방에 추가해야하는데 본인 데이터를 넣음 # 버그클라이언트에 채팅 표시가 안되던 문제 패킷 데이터를 받고 화면 표시 과정이 누락되었음 ListBox는 itemSource에 ObservableCollection를 바인딩 시켜 자동으로 UI가 갱신되었지만 TextBox는 해당 기능이 없어 텍스트 관리와 표시를 따로 관리함 # 퇴장 작업 진행 퇴장 당사자는 로비 유저 목록과 방 목록이 필요 퇴장 당사자 이외에 데이터를 갱신해야 될 유저는 해당 방에 있는 사람과 로비에 있는 사람이고 방에 있는 사람은 퇴장 당사자를 제거, 로비에 있..
-
20250625 개발 일지. 방 생성 및 입장 버그 수정개발일지/C# 채팅 프로그램 2025. 6. 26. 12:55
점심 먹고옴 # 방 생성 버그 확인방 생성 시 로비에 유저가 지워지는 것은 확인했는데 입장하니 유저가 전부 같은 닉네임을 사용하고 유저가 3명더미 클라이언트 로그가 C_CreateRoom Send Complete! 가 뜨는거 보면 채팅 클라이언트 입장 버튼 누를 시 방을 입장하는게 아니라 생성하는 듯-> 로그 표시를 잘못한 것 같다 더미 클라이언트 방생성 -> 채팅 클라이언트 방 입장 -> 더미 클라이언트 방 입장 -> 채팅 클라이언트에서 유저 목록이 갱신이 안됨 # 더미 클라이언트 기능 누락 수정더미 E키(C_RoomList 패킷) 룸 리스트 표시 안함 -> 표시 하도록 수정# 룸 입장 버그 확인채팅 프로그램 로비 입장 -> 더미 클라 로비 입장 -> 채팅 클라 방 생성 및 입장 -> 더미 클라 해당 ..
-
20250624 개발 일지. WPF 버튼 학습 및 로비 유저 목록 버그 수정개발일지/C# 채팅 프로그램 2025. 6. 25. 13:56
점심쯤 옴 # 할 일채팅 클라이언트에 UI동기화를 위한 래퍼 클래스 추가클라이언트에 방 생성 기능 추가 # 로비 유저 목록 버그방 생성 또는 입장 시 로비 유저 목록에서 제거되는지 확인 -> 관리 객체에서는 제거되었지만 뷰 객체에서 제거가 안되어있음 뷰매니저에서 제거관련 처리를 생각해봐야 할 듯 # WPF 버튼 클릭으로 특정 객체 취득C# WPF에서 ListBox ItemsSource속성에 ObservableCollection를 대입했는데 ListBox 내 버튼을 누르면 이벤트로 특정 ObservableCollection 객체를 가져올 수 있는지-> 가능. ListBox에 해당 ObservableCollection를 Binding 하고 버튼 Tag에 Binding 키워드 사용 # 일지첫 패킷 설계가 그..