버그 해결을 위한 모든 질문을 던져
0 votes
655 views

며칠간 찾아보았으나 해결하지 못하여 질문을 남깁니다.

 

UnityWebRequest 를 사용하여 http 서버 통신을 하는데, 일부 유저에게서 간헐적으로 에러가 발생합니다.

 

// 유저 로그인 : 유저 정보 반환
public IEnumerator DB_User_Login(string _address, int accountGsn) 
{
    JsonData jsonData = new JsonData();
    jsonData["accountGsn"] = accountGsn;
    string strJson = jsonData.ToJson();

    WWWForm cForm = new WWWForm();
    cForm.AddField("strJson", encryptJson);
    UnityWebRequest wwwUrl = UnityWebRequest.Post(_address, cForm);

    yield return wwwUrl.SendWebRequest();

    if (wwwUrl.isNetworkError || wwwUrl.isHttpError)
    {
        DataManager.instance.ClientToServerErrorLog("DB_User_Login", "서버 호출 통신 에러 발생. wwwUrl.error : " + wwwUrl.error);
        ServerCallErrorReStart();
    }
    else
    {        
        if (wwwUrl.downloadHandler.data == null)
        {
            DataManager.instance.ClientToServerErrorLog("DB_User_Login", "서버로 부터 아무런 결과가 반환되지 않음.");
            ServerCallErrorReStart();
        }
        else
        {
            ...
            // 서버 통신 반환값 처리
            ...
        }
    }
}

 

 

위 코드에서 서버 통신시 에러가 발생하며,

DataManager.instance.ClientToServerErrorLog("DB_User_Login", "서버 호출 통신 에러 발생. wwwUrl.error : " + wwwUrl.error);

이 코드로 DB에 로그가 입력됩니다.

에러 내용은 Unknown Error 라고 표기되어있습니다.

 

모든 유저에게 발생하는것이 아니라 간헐적으로 에러가 발생하는데,

이런 경우 해결방법이 있는지 알고싶습니다.

 

 

asked (2 point) , 655 views
혹시 한번에 여러개 통신을 하지 않으시는지 먼저 확인해보시고

 

메세지 큐잉해서 보내는방법도 고려해보시길 추천합니다.

2 answers

0 votes

저는 유니티를 해본적이 없어서 아무런 도움이 되지 않을지도 모르겠습니다만. 그냥 올려주신 모듈과 UnknownError를 포함하여 구글에 서치하니 아래의게시물이 가장 처음에 나오더군요 이런건.. 아닐런지요?

https://smilejsu.tistory.com/1549

answered (252 point)
0 votes
오래 되었지만 참고용으로

500 에러가 떴다면  웹서버 로그를 확인 해보셔야 하겠고,  지금은 에러코드가 나오지 않은걸로 보입니다. 그래도 일단 웹서버 로그에서 특이사항은 없는지 확인 해보시고요, 아무런 특이점이 없다면 단순 연결 끊김오류로 보셔도 될거같습니다

웹서버들이 내부 설정에 따라 특정 조건마다 메모리 증가로 프로세스를 파괴,생성 하기도 하고, 들어온 연결을 일방적으로 끊기도 합니다.

실제로 웹서버와 socket 통신을 해보면 서버에 부담이 생길시 일방적으로 연결이 끊어집니다. 이럴땐 마냥 연결 끊김이라 어떤 에러도 로그도 없이 넘어가버립니다.  제가 socket 으로 직접 해본 결과로는 0.0001% 정도로 이런 상황이 발생 했습니다.

위 코드에서 ReStart() 함수를 호출하여 재시도를 하시는거 같은데  저 역시 이렇게 사용 중이고요.  웹서버와의 통신시 이런 원인미상의 끊김 오류는 원래 종종 나타나기 때문에 너무 스트레스 받지 않으셔도 되지 싶습니다.
answered (28 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

254 질문
388 answers
396 댓글
508 users