2024.10.31 트러블슈팅

장재영·2024년 11월 1일
0

트러블1

  • Unity 클라이언트 (강제)종료 시점에 오류 발생

문제 발생 조건

  • Unity 클라이언트와 JavaScript TCP 서버 간 연결에서, ping-pong 메시징 활성화 시 클라이언트 (강제)종료 시점에 오류 발생

원인 분석

  • mac에서 실행 시 에러가 안나는걸 확인

결과

  • 윈도우 에서만 나오는 오류로 판정
  • 진행상 문제가 없어보였으나 추가적인 오류가 발생 => 트러블2

트러블2

  • 에러 처리 부분에서 removeUser를 해서 유저 데이터를 빼내는 메소드가 작동을 안함

문제 발생 조건

  • 트러블1에서 파생되었다 시피 ping-pong 메시징 활성화 강제종료 시 에만 발생

원인 분석

  1. 소켓이 끊기며 발생한 오류라고 생각해 socket데이터가 바뀐건가? 싶어 비교분석
    => socket데이터에 변화는 없음

  2. socket데이터에 변화가 없으므로 socket관련 메서드는 정상작동 해야하지만 작동 하지 않음

  3. log를 찍어보며 확인한 결과 에러 처리 마지막에 클라이언트에 socket.write해서 보내는게 문제가됨

  4. 이미 연결이 끊겼는데 socket.write를 작동해서 오류가 발생된것

해결방안

  • 연결이 끊겼을 경우 발생하는 에러코드가 ECONNRESET인 것을 확인
  • 에러에 대해서 따로 처리를 해 socket.write 작동시키지 않음으로 해결
profile
개발 하고 싶은 비버

0개의 댓글