안드로이드 개발 질문/답변
(글 수 45,052)
이번에 소켓을 사용하는 메신저 같은 걸 만들고 있는데요.
유저의 15%정도가 접속이 끊기는 현상이 발생합니다ㅠㅠ
그중 2/3가 3G사용자구요..
우선 제어플은 설정에 재실행 체크하면 킬러로 죽이거나 설정에서 강제종료해도 살아나서 재접속합니다
제가 생각하는 경우들 중
접속이 당연히 불가능한 경우가
-어플을 지웠거나,
-3G를 끈채로 wifi만 켠 경우 절전모드 정책이 항상 켜짐이 아니거나,
-3G<->wifi /hot spot/Cell간 이동하면서 ip가 바뀔때( 이럴땐 강제종료 후 자동 재접속합니다. )
-로그아웃 했을대
이 정도 이구요
위와 같은 경우가 아니라면 접속이 되어야하는데 안되는 사람들이 좀 있습니다..ㅜ
제가 테스트해본건
1. 3G on WIFI off
2. 3G on WIFI on
3. 3G off WIFI on
4. 3G off WIFI off
5. 비행모드
6. 1~5번 모든 조합 반복.
7. 1~4번 에서 테스크 킬러로 종료 후 재실행 확인( 겔럭시s는 램정리도 포함 )
8. 1~4번에서 설정-> 어플리케이션관리->모든어플리케이션에서 강제 종료후 재실행 확인
이 정도인데 혹시 제가 테스트에서 놓치거나 잘못된 사항이 있을까요?ㅜㅜ
고수님들의 조언 부탁드립니다.ㅜㅜ




모바일의 인터넷 환경은 워낙 변화무쌍하기에... 짜증나죠...
가령 엘레베이터를 타면 네트워크가 먹통되는 현상이 생기죠...
이런 경우가 아니더라도 갑자기 안테나가 쭉! 떨어질 수도 있는것이고요...
사용자 기기에서 일정 시간마다 서버에 현재 잘 살아있다고(?) 상태를 보내주고
몇번 혹은 몇초동안 계속 서버로 값이 안오면 접속이 종료된것으로 간주하고
기기에서도 마찬가지로 몇번 혹은 몇초동안 접속을 실패했을때는 로그아웃 시켜야겠죠...
서버와 기기에서 서로 어떤 정보를 보냈으면 상대방이 잘 받았다고 확인 정보를 주고
그것을 받아야 성공인 것이겠죠.
아무래도 메신져같은 어플의 경우 한번 실패하면 바로 접속을 끊었다고 인식하는게 아니라
몇번의 기회를 더 부여해야 할 것 같네요... 몇번 실패하더라도 제한안에 다시 연결이
성공하면 그동안에 못보낸 정보를 쏴주는것이죠.
적당한 시도 횟수와 시간은 테스트 하면서 찾아내야겠죠.