본문 바로가기

Android

[24일차]구글 GCM 메카니즘

푸쉬는 뭐냐면



클라이언트 서버가 있으면



지금까지는 클라이언트가 서버에게 요청하면 그거에 응답하는 방식이었다. 


이것은 클라이언트 - 서버 방식이라 한다. 


서버가 클라이언트에게 먼가 를 noti해야하는 경우가 생길때 , 이런것들을 처리 할 방법이 없다. 


chatting 서버가 따로 있다.  그렇게 서버랑 클라이언트가 둘다 클라이언트로 채팅서버와 연결되어있는 것이다. 



이게 푸쉬다


GCM은 단말이 있으면 구글 플레이 클라이언트가 채팅 서버에 연결 되있고 채팅서버는 GCM 서버가 연결되어있다. 

5222번 포트로 서버로 접속해서 사용되며, 연결된 후 에는 xmpp로 gcm과 클라이언트가 xmpp로 p2p로 직접연결되어 통신ㄴ한다. 


GCM은 변경사항을 알리는 용도로만 사용한다. 왜냐면 최대크기가 4K밖에 안되니까..


delay_while_idle="true" 상황 단말이 sleep상태에서 안보내다가 그때 gcm을 보낸다. 


요즘에는 defalut가 false라서 보내면 sleep상태여도 메세지가 보내짐

 


defalut는 4주동안 실패 메시지를 저장하고 있는다. 


cllapse키는 새로운 뉴스가 있다고 보냈는데, 마침 단말이 slepp상태라서 같은 메세지가 여러개 저장되면, 그 중에 하나만 보낼 수 있게 하기 위해 설정하는 거다. collapse 키는 4개로 제약되어있는 한계가 있다. 그런식으로 보낼 수 있는 값들이 있는거다. 


dry-run  핑 찍는거 .



구글이 추가적으로 message의 종류


Registration Token 을 이용하어 해당 앱에만 메시지 전송 이건 Simple Message 라고 한다. 


Topic Message라는 것도 있는데 , Client에서 Topic에 Registration Token을 등록하면 Server에서 Topic으로 메시지를 전송하여 등록된 모든 단말에 메시지를 전송되도록 처리되는 메시지 .



Device Group Message Server에서 Device Group을 생성하여 등록한 다음, Device Group으로 전송하면, Group에 등록된 모든 Device로 메시지 전송. 일반적으로 한 사용자가 여러 단말을 사용하는 경우에 사용.



성준이 블로그 참고하자


'Android' 카테고리의 다른 글

[25일차] 채팅  (0) 2016.08.23
[25일차]페이스북 로그인 연동  (0) 2016.08.23
[24일차] 연동 로그인 페이스북  (0) 2016.08.22
[23일차]페이스북 로그인 실습  (0) 2016.08.19
[23일차] 페이스북 Oauth  (0) 2016.08.19