마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드와 APM 서버 소켓통신 질문(PHP 통신 제발) ㅠㅠㅠ

0 추천
제가 현재 안드로이드로 개발하는 앱이 있습니다

이 앱의 구조가 폰에서 측정된 음량데이터를 이어폰으로 노래를 듣고 있을때 5초 간격으로 데이터를 서버로 전송하는 구조로 되어 있습니다

현재 측정부분은 완료 하였고 통신부분이 남아있는데요

문제는 통신 부분에서 계속적으로 딜레이 또는 끊김 현상이 일어난다는 것입니다.

지금 하고 있는 구조는

android에서 서버쪽으로 HTTP로 연결해서 데이터를 전송하고 서버에서는 POST형식으로 받아 그것을 쿼리로 날려주는 구조입니다.

 

이렇다 보니 전송을 계속 하지는 않고 대략 1시간 잛으면 30분만 있어도 통신이 이루어 지지않네요ㅡㅡㅡ

 

다른사람 말로는 Socaket를 이용하면 될듯 하다고 하는데요

 

어떻게 해야될지 감이 안잡혀서요

 

php가 소켓을 제공해주는지도 모르겠ㄱ고

 

방법좀 알려주세요 ㅜㅜㅜ
익명사용자 님이 2016년 10월 14일 질문
5초마다 전송하는 데이터량은 어찌 되는지와 데이터를 전송후 결과값을 받기까지의 시간은 얼마나 소요되나요?
서버쪽 코드가 상당히 엉터리로 작성되어서 5초마다 한건의 데이터를 처리하기 힘들다.
네트워크가 상당히 불량하다.
전송하는 패킷사이즈가 상당히 크다.
이런 경우가 아니라면 5초만에 한번씩 데이터를 전송하더라도 처리가 가능해야 합니다.
저도 http 서버로 5초보다 더 짧은 간격으로 패킷을 지속적으로 보내서 처리했던 적이 있습니다.
지금 제가 한 코드를 보니 좀 엉망이었습니다.. ㅋㅋㅋㅋ count를 증가하면서 5초를 세서 그때만 전송하도록 하고 있었네요.. 일단 Thread.sleep를 통해 데이터 전송하는 부분만 5초의 딜레이를 주니까 대충 되는데요
지금 하나 문제가 서비스에서 현재 데이터가 넘어가요 강제 종료후에 전원버튼으로 화면을 꺼버리면 다시 전송이 안되는것 같아요
그리고 전원을 누르고 다시키니 어느정도 시간이 지나고 서비스에서 앱을 실행하도록 하고 있는데요...
멜론이나 mnet을 보면 이런 부분이 없는거로 봐서 대기화면에 자기 플레이어를 띄우는 방식으로 처리한게 아닌가 생각이 듭니다.

아니면 통신 패킷이 잘못됬다던가 ... ㅠㅠ

서비스 등록후에 앱을 끄고 바로 화면을 전원으로 종료하면 서비스 실행에 문제가 생기나요???
서비스의 목적은 화면이 백그라운드에서 오랜 시간이 걸리는 작업을 해주기 위한 것입니다. 예를 들면 뮤직플레이어가 화면이 꺼져도 계속 음악을 들을 수 있는 것과 같은 경우죠. 화면이 종료될 때 서비스가 중지된다는 건 님의 코드가 서비스를 종료하도록 했다는 말이겠죠. 패킷에 에러가 있을 경우, 에러처리가 안되었다던가.
'화면을 전원으로 종료한다'가 무슨 말인지는 모르겠지만 암튼 님의 작성하신 서비스 관련코드를 살펴보셔야 겠네요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...