2017-03-13 8 views
2

저는 Android 앱에서 푸시 알림을 위해 GCM을 항상 사용했지만 보안 제한 때문에 GCM을 피하고 로컬 푸시 서버를 사용해야합니다. 많은 답변을 찾았습니다. 질문이 있지만 잘 구성되어 있지 않습니다.이 주제에 대해 XMPP 서버 및 클라이언트 라이브러리를 사용하기위한 단계별 프로세스에 대한 명확한 답변을 얻으려고합니다.GCM을 사용하지 않고 Android에서 푸시 알림

답변

1

GCM과 GCM이 무엇인지 완전히 이해하지 못할 수 있습니다. .

전통적으로 각 데스크톱 응용 프로그램은 Openfire 인스턴스에 연결하고 타사 서비스없이 원할 때 메시지를 보내고받을 수있는 것처럼 자체 서버에 자체 TCP 연결을 설정합니다.

  1. 모바일 기기 제한 자원은 다음과 같습니다 :

    이 방법은 모바일 환경에서 많은 문제가 당신이 많은 TCP 연결이 때 빨리 배터리가 소모됩니다 열

  2. 모바일 기기 하지는 지속적인 네트워크를 가지고 있습니다 연결 : 휴대 전화 및/또는 wifi 네트워크 변경 사항에주의해야하며 배터리 영향도 있으므로 불안정한 환경에서 메시지를 잃어서는 안됩니다.

이러한 문제를 해결하기 위해 Apple, Google 및 경쟁사는 "알림 서비스"를 제공합니다. 그들은 다음과 같이 구성됩니다 :

  1. Apple/Google "알림"인프라 서버에 계속 연결되는 시스템 전체 배경 응용 프로그램 ("서비스").
  2. 개발자를 위해 서버 및 클라이언트 측에서 응용 프로그램을 모두 "등록"합니다. 서버 측 응용 프로그램이 모든 이벤트를 Apple/Google에 보내고 클라이언트 응용 프로그램이 해당 시스템 서비스에서 "푸시"를 받으면 네트워크 중단 및 배터리 영향에 대해주의하십시오. 모든 문제는 OS 제조업체에서 처리합니다.

그러나 당신은 당신이 모든 일이 당신에 의해 보살핌을 플러스 할 받고 "GCM을 피하기"하려고 할 때 : 구글의 일을 방해

  1. 귀하의 "수제"지속적인 네트워크 서비스를, 그리고 것 적어도 더블 네트워크 및 배터리 사용 (혹은 그 이상, 구현 오류/애플/구글 큰 엔지니어링 팀에 의해 해결 곳에 이미 다른 코너 케이스있을 것이다해서)

  2. 애플리케이션 것 극적으로 더 COM ("보안"문제가 현재 처리됨에 따라) 사용자 환경이 좋지 않습니다 ("자체"네트워킹을 사용하는 응용 프로그램은 종종 UX 설계가 좋지 않으므로 최종 사용자에게 네트워크 오류 메시지가 표시되고 지루하고, 예를 들어).

그래서, 요약하기 :

  1. 예, 기술적으로, 당신은 헤로인 라이브러리를 가지고 오픈 파이어에 연결할 수 있습니다. 기본적으로 GCM과 동일합니다.
  2. 아니요, 99.9999 %의 사례에서 이 아니라 이쪽으로 가야합니다. 당신이 경쟁적인 모바일 플랫폼을 개발하는 큰 회사가 아니라면.
+0

답을 생각해보십시오. 피할 수있는 몇 가지 문제를 분명히했습니다. – Abrd