ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20250708 개발 일지. 동기화 버그 원인 파악 및 수정
    개발일지/C# 채팅 프로그램 2025. 7. 9. 14:24
    728x90

    공유오피스 마지막 날
    갑자기 펑 소리 나며 차단기 내려가서 잠시 인터넷 안됨

     

    # 버그 원인 파악 및 수정
    DummyTest Start
    TestSession_1[C_CreateRoom]
    TestSession_2[C_CreateRoom]
    TestSession_2[SCreateRoom] size: 41
    TestSession_1[SCreateRoom] size: 41
    ShowAddedRoom
    ShowRoomScreen
    Added Room ID: 2, Name: TestRoom_1127671729, Master: 0
    TestSession_2[SCreateRoom] size: 45
    ShowRoomUserList
    User ID: 0, Nickname: User_0
    ShowRoomScreen
    ShowRoomUserList
    User ID: 1, Nickname: User_1
    방 생성 성공: TestRoom_1127671729 (ID: 2)
    TestSession_1[SCreateRoom] size: 45
    방 생성 성공: TestRoom_76189276 (ID: 1)
    ShowAddedRoom
    Added Room ID: 1, Name: TestRoom_76189276, Master: 1
    ShowRemovedUser
    Removed Room ID: 0, Nickname: User_1, UserId: 1
    TestSession_1[C_SetNickname] <-- [C_SetNicknameHandler] User 0 is not in Lobby state.  
    TestSession_2[C_Chat]
    TestSession_1[SSetNickname] size: 52
    You must be in the Lobby to set a nickname.
    ShowRoomScreen
    TestSession_2[SChat] size: 40
    User_1 1[2025-07-08 오전 5:33:25]: Test Message from

    세션 1과 세션 2가 차례대로 방을 생성했는데 세션 1의 클라이언트 측 상태가 로비로 바뀜.
    ShowRoomScreen 메소드를 통해 로비에서 룸으로 상태가 바뀌어야 하는데 안 바뀜.
    ViewManager에 스크린을 바꾸는 메서드에서 세션을 가져오는데 첫 번째 세션의 값을 가져와 바꾸는 것을 확인함.

     

    # 버그 2
    상태는 방인데 CurrentRoom이 null인 경우가 있음 -> CurrentRoom을 없애든 개선이 필요할 듯.
    반대로 로비인데 방 상태여서 방에서만 사용가능한 기능의 패킷을 계속 날리는 경우가 있음.
    클라이언트와 서버 상태 불일치 에러 코드인 경우 클라이언트에서 예측해서 클라이언트 상태를 변경하는 것이 아니라 서버에 유저 인포를 다시 요청하여 동기화를 진행하도록 수정 예정.

    -> 클라이언트 예측은 현재 유저 상태가 방과 로비 이렇게 두 개뿐이라 상태가 다르면 다른 상태로 변경하면 되지만 늘어날 경우 문제가 될 수 있음.

     

    # 작업 중
    유저 상태 동기화용 패킷 핸들러 작성 중
    RoomManager 룸인포 획득 함수 작성 필요

    728x90
Designed by Tistory.