안녕하세요.
안드로이드 채팅 앱을 취미삼아 하나 만들었는데, 그저 알고 있는 지식만을 이용해서 간단하게 구성해 봤습니다.
그러다가 푸시(push) 방식 관련해서 GCM 등 알게 되었고, 폴링(polling) 방식 이란것도 알게 되었는데요.
제가 만들어 놓은게 어떤 문제점이 있는지 어디서 효율이 떨어 지는지 궁금해서 이렇게 질문을 올립니다.
일단, 웹 호스팅을 받고 있는 서버가 하나 있습니다.
send.php, receive.php 라는 파일을 만들어서 서버에 올려놨구요. 이 두 파일의 동작은 아주 간단 합니다.
(GET 방식으로 설명하겠습니다. 실제로는 POST 방식을 사용 합니다.)
send.php?to=B&from=A&text=안녕하세요
위의 방법으로 A 사용자 앱에서 자바 객체를 이용해 페이지를 호출하면, 서버는 데이터를 DB에 저장합니다.
이제 B 사용자 앱에서 receive.php?to=B 처럼 페이지를 호출하면 서버는 DB에 쿼리하여 결과를 반환해 줍니다.
B는 반환값이 있으면 UI를 업데이트하여 출력해 주구요.
send와 receive 스레드를 각각 만들었고, 결국 2개의 스레드가 백그라운드로 돌아갑니다.
receive 스레드는 설정된 x 초 주기로 서버의 receive.php 페이지를 호출하고,
send 스레드는 앱 내의 특정 변수안에 값이 있을 경우만 send.php 페이지를 호출하는 구조 입니다.
push 방식은 아닌 것 같고, polling 방식에 가깝다는 느낌이 드는데...
제가 해놓은 방식이 어떤 방식인지와, 어떤 문제점이 있는지...
고수님들의 의견 부탁 드립니다.