2011-09-15 14 views
5

Jako część aplikacji na Androida, którą rozwijam, dostępna jest funkcja pokoju rozmów. Mamy serwer, który może przetwarzać przychodzące wiadomości i przechowywać wiadomości. Czy lepiej jest pozostawić otwarte połączenie między telefonem a serwerem, aby serwer mógł wysyłać nowe wiadomości do telefonu, czy też lepiej, aby telefon sondował serwer pod kątem nowych wiadomości czatu?Android - Sockets vs Polling

Odpowiedz

1

Pobieranie nie ma połączenia w czasie rzeczywistym, a trwałe połączenie to wyczerpanie baterii. Myślę, że to, czego szukasz, to połączenie "pchającego" i trwałego połączenia. Budzisz telefon przez naciśnięcie, a następnie nawiążesz połączenie przez gniazda do obsługi czatu.

Proponuję przeczytać artykuł o numerze this. Nie jestem pewien, czy wspomina o c2dm, usłudze Google Push.

+0

Czy możesz zakwalifikować swoje oświadczenie "Trwałe połączenie to wyczerpanie baterii"? – AgileYogi

+0

"Trwałe połączenie to wyczerpanie baterii", ponieważ utrzymanie otwartego połączenia oznacza, że ​​będziesz potrzebował stałego zużycia zasobów. – kuchi

3

To złe rozwiązanie w przypadku sondowania aplikacji, które losowo publikują dane. Chcę powiedzieć, że dane do głosowania są przydatne, gdy coś dzieje się dyskretnie, co każde 5 minut lub coś podobnego. To nie jest przypadek z czatu, niektóre użytkownik może opublikować te coś w godzinę, niektóre mogą zakładać 30 razy w 2 minuty

tak zachować swoje gniazda otwarte

0

chciałbym zachować gniazdo otwarte, jeśli są zaniepokojeni wiadomości błyskawicznych, konfiguracja połączenia przez gniazdo wymaga czasu, zwłaszcza jeśli korzystasz z połączenia GSM. Widziałem, że potrzeba 10 sekund lub więcej, aby otworzyć gniazdo na 3G, a tym bardziej na WiFi.