2014-11-20 3 views
1

사용자가 등록 및 로그인하는 앱을 만들고 있습니다. Signin 사용자 상태가 JSON을 통해 온라인으로 서버에 전송 된 후 mysql 데이터베이스를 사용 중입니다. 이제 관리자가 몇 가지 데이터를 보내거나 온라인 사용자에게 경고를 보내면 안드로이드 측에 계속해서 서버 응답을 확인해야합니다. 이 응답이 왔을 때 새로운 활동이 시작되어야하고 관리자는 언제든지 응답을 보낼 수 있습니다. AlarmManager를 사용하여 1 초가 지난 후 서버 응답을 확인하는 서비스 접근 방식을 사용합니다. 이는 내 앱과 모바일이 지속적으로 서비스를 만드는 속도를 늦추는 좋은 접근 방식이 아닙니다. 는 서버 응답을 지속적으로 확인하기 위해 어떤 접근 방식을 취해야하는지 제안합니다. 누군가가 Google Cloud Messaging 접근 방식을 사용하라고했습니다 (특정 사용자에게 응답을 보내는 방법은 무엇입니까?)하지만 제안이나 기타 최상의 접근이 필요합니다.서버 응답 확인 주기적으로

+0

푸시 메시지를 대신 사용하십시오. – IuriiO

+0

푸시 메시지 설명에 대한 링크를 보내 주시겠습니까 –

+1

귀하의 요구 사항에 가장 적합한 옵션은 GCM이라고 생각합니다. 또한 GCM은 해당 사용자가 특정 사용자에게 응답을 보낼 수 있습니다. 귀하의 특정 사용자에 대한 – himCream

답변

0

Google Cloud Messaging을 사용해야합니다. 처음으로 사용자가 앱을 처음 설치할 때.

  • (이것은 당신이 처음에 REGID을 저장 한 것 sharedPreference을 확인하여 이루어집니다) - 아래 시도하는 장치가 등록 된 경우 알고리즘은
  • 확인 로그인을

    • 사용자를 적용 할 수 있습니다

      장치는

    • GCM은 REGID (매우 긴 문자를) 반환 GCM에 장치를 등록 등록되지 않은 경우
    • 당신이 당신의 장치

      에 정보를 보낼 수 있습니다 서버에서 사용자

    에 로그인에서 진행 sharedPreference

  • 에 REGID을 저장
  • 에 로그인 한 사용자에 대해 서버에 REGID 저장
    • 는 GCM 및 REGID
    • GCM REGID을 식별하는 메시지를 전송하고, 기기 위치.
    • GCM이 경우 온라인 장치에 메시지를 방송 또는 장치가 온라인 상태가 될 때까지 기다립니다 는 의도가 무엇인지 정의하는 action_key 할 수 있습니다 (GCM에서 메시지를 메시지를 받아야 장치는, 예를 들어 PICK_UP는 의미 할 수 있습니다
    • " 헤이 서버는 서버에 연결하고
    • 당신은
    GCM
  • 로 서버에서 대용량 데이터를 전송하지 말아야 필요한 것을 선택 예를 들어 뭔가를 않는, 약간의 정보 ") 그래서 메시지가 PICK_UP 동일한 경우는
  • 을 선택하는 당신을 필요로

    GCM을 사용하면 정기적으로 정보를 요청하지 않아도됩니다. 전자 서버. 또한 사용자가 불필요하게 많은 대역폭을 낭비하지 않도록합니다.

    도움이되기를 바랍니다.