반응형


About GCM Connection Server

https://developers.google.com/cloud-messaging/server

GCM의 서버는 2가지 컴포넌트로 구성되어 있다.
  •  GCM connectoin servers 는 구글에 의해서 제공되어진다. 이서버들은 앱서버로부터의 메시지들을 처리하고 그것들을 앱을 실행중인 장비들로 보낸다. 구글은 HTTP와 XMPP로 연결 서버들을 제공한다.
  •  application server는 당신의 환경에서 구현해야만한다. 이 애플리케이션 서버는 적절하게 XMPP나 HTTP를 사용하여, 선택된 GCM 서버를 통해서 클라이언트 앱으로 데이터를 보낸다.
완벽한 GCM 구현은 클라이언트 구현과 서버 구현 모두를 요구한다. 좀더 많은 클라이언트측면에 대한 정보를 원한다면, 플랫폼별 가이드 문서를 보아라.


Role of the Application Server

GCM을 사용하는 클라이언트 앱을 작성하기 전에, 여러분은 다음의 기준을 충족하는 애플리케이션 서버를 갖춰야만한다.
  • 여러분의 클라이언트와 통신할 수 있어야 한다.
  • GCM connection server 로 형식화된 요청들을 적절하게 보낼 수 있어야 한다.
  • exponential back-off 를 사용하여 요청들과 재전송을 처리할 수 있어야 한다. (http://developers.google.com/api-client-library/java/google-http-java-client/backoff)
  • API 키와 클라이언트 등록 token 을 안전하게 저장할 수 있어야 한다. (Note: 절대 API 키를 클라이언트 코드에 삽입하면 안된다.)
  • XMPP를 위해서, 서버는 클라이언트들이 보내는 각가의 메시지들을 유일하게 식별할 수 있게 메시지IDs를 생성할 수 있어야만 한다. XMPP 메시지 IDs sender ID 당 한 개여야만 한다.
여러분은 앱서버와 GCM서버의 상호작용을 원하는대로 사용할 수 있게 하기 위해서 GCM connection server protocol을 결정할 필요가 있다. Note that 만약에 여러분이 클라이언트 애플리케이션에서 업스트림을 사용하기를 바란다면, XMPP를 사용해야만 할 것이다. 이에 대한 자세한 논의는 Chooging a GCM Connection Server를 보아라.


Choosing a GCM Connection Server Protocol

 현재 GCM은 HTTP와 XMPP의 2가지 연결 서버 프로토콜을 제공하고 있다. 여러분의 앱서버는 프로토콜을 따로따로 사용하거나 한꺼번에 사용할 수 있다. XMPP 메시지처리가 HTTP 메시지처리와 다른 점은 다음과 같다.

  • Upstream/Downstream messages
    • HTTP : Downstream만 가능하며, cloud 에서 device 로 4KB의 데이터를 올릴 수 있다.
    • XMPP : cloud 에서 device 로 device에서 cloud 로 Upstream과 Downstream이 가능하여, 4KB의 데이터를 올릴 수 있다.
  • Messaging(동기 또는 비동기)
    • HTTP : 동기방식. 앱서버는 HTTP POST 요청으로 메시지들을 전달하고 응답을 기다린다. 이 메카니즘은 동기방식이고 응답을 받을 때까지 다른 메시지를 보내기 위한 발송은 차단한다.
    • XMPP : 비동기방식. 앱서버는 지속성있는 XMPP 연결을 통해 full line speed로 클라이언트 앱으로 메시지들을 주고 받을 수 있습니다. XMPP 연결 서버는 비동기적으로 실패 알림(특별한 ACK 그리고 NACK JSON-encoded XMPP 메시지들로 구성된)에 대한 응답을 보낼 수 있습니다.
  • JSON
    • HTTP : JSON 메시지들은 HTTP POST 로 보내진다.
    • XMPP : JSON 메시지들은 XMPP 메시지들로 캡슐화되어진다.
  • Plain Text
    • HTTP : Plain Text 메시지들은 HTTP POST 로 보내진다.
    • XMPP : 지원되지 않는다.
  • Multicast downstream 으로 여러개의 등록 토큰들을 보냅니다.
    • HTTP : JSON 메시지 형식으로 지원된다.
    • XMPP : 지원되지 않는다.


Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License. For details, see our Site Policies. Java is a registered trademark of Oracle and/or its affiliates.


반응형

+ Recent posts