W jaki sposób Google wdrożyło funkcję powiadamiania push? Czy działa poprzez odpytywanie wykonane przez usługę działającą w tle lub w inny sposób?Jak działa technologia powiadomień push na Androida?
Odpowiedz
Z tego co słyszałem podczas Android Developers Conference w Izraelu
Jest po prostu gniazdo TCP czeka w accept mode na serwer Google w chmurze. Połączenie TCP zostało zainicjowane przez aplikację Google Play. Właśnie dlatego Google Play musi być zainstalowany na urządzeniu, aby umożliwić pracę Google Cloud Messaging (GCM) (dawniej Android Cloud to Device Messaging Service - C2DM).
Gdy to gniazdo klienta TCP otrzymuje pewną wiadomość, wiadomość zawiera informacje, takie jak nazwa pakietu aplikacji, do której ma adresować, i oczywiście same dane. Te dane są analizowane i pakowane do postaci intent, która jest nadawana i ostatecznie odbierana przez aplikację.
Gniazdo TCP pozostaje otwarte nawet wtedy, gdy stan radiowy urządzenia zmienia się w tryb "bezczynności". Aplikacje nie muszą być uruchomione, aby otrzymać intencje.
Więcej informacji na http://developer.android.com/google/gcm/gcm.html
Ale myślę, że działa również na emulatorze. To, co przychodzi mi do głowy, to to, że urządzenie aktualizuje serwer swoją bieżącą ścieżką (IP). Gdy serwer google musi wysłać powiadomienie, pobiera bieżącą ścieżkę i przekazuje wiadomość do tej ścieżki. Czy mam w pewnym stopniu rację? –
@Khawar Raza: gdy adres IP urządzenia zmieni się z jakiegoś powodu, urządzenie rozłączy się z serwerem. kiedy to się dzieje - zamiast tego nowe połączenie działa w oparciu o nowy adres IP urządzenia. –
@Khawar Raza: emulator działa nawet bez Google Play. Domyślam się, że to gniazdo zostało wbudowane wewnętrznie, zamiast google play –
Tak, masz rację. Google miał usługę (GTalk Service) i ta usługa zwróciła się do serwerów Google w niektórych okresach.
Czy usługa gtalkservice nadal istnieje i działa? –
Nie wiem. Właśnie przeczytałem, jak działa C2DM. Teraz coś może się zmienić. – Yury
można wdrożyć powiadomienia push na Androidzie się z połączenia TCP długo wyborczym. Ale to wymagałoby utrzymania dodatkowego gniazda => wyczerpania baterii. Możesz również otworzyć połączenie w regularnych odstępach czasu za pomocą Menedżera alarmów.
Google prawdopodobnie otworzy jedno gniazdo dla wszystkich powiadomień push C2DM, stąd jego większa wydajność.
Android utrzymuje jedno aktywne połączenie z serwerami Google, ale nie zużywa dużo energii ani danych, ponieważ żaden ruch nie jest wysyłany, dopóki coś nie wyśle wiadomości GCM do aplikacji w telefonie. W telefonie jest tylko jedno połączenie używane przez wszystkie aplikacje: zainstalowanie nowej aplikacji korzystającej z GCM nie powoduje dodatkowego obciążenia.
Pierwszym krokiem w GCM jest wysłanie przez serwer zewnętrzny (taki jak serwer poczty e-mail) żądania do serwera Google GCM. Serwer ten następnie wysyła wiadomość do twojego urządzenia, przez to otwarte połączenie. System Android sprawdza komunikat, aby określić, dla której aplikacji jest uruchamiany i uruchamia tę aplikację. Aplikacja musi zarejestrować się w systemie Android, aby korzystać z GCM, i musi mieć odpowiednie uprawnienia. Po uruchomieniu aplikacji może natychmiast utworzyć powiadomienie z danymi z wiadomości. Wiadomości GCM mają bardzo ograniczony rozmiar, więc aplikacja może zamiast tego otworzyć normalne połączenie z serwerem innej firmy, aby uzyskać więcej informacji (na przykład pobierając nagłówki nowych wiadomości e-mail).
Zaletą korzystania z powiadomień push jest to, że aplikacje nie muszą być uruchamiane w regularnych odstępach czasu w celu sprawdzenia nowych danych, oszczędzając zarówno moc, jak i dane. Zaletą posiadania scentralizowanego mechanizmu, takiego jak GCM, jest to, że urządzenie potrzebuje tylko jednego otwartego połączenia sieciowego, a system Android GCM jest jedyną rzeczą, która musi działać, a nie każda aplikacja musi pozostać uruchomiona w tle, aby zachować własną sieć połączenie z własnym serwerem.
Tylko komentarz o połączeniu GCM. To pojedyncze połączenie jest połączeniem odpytywania. – wmac
Najważniejsze dla mnie było to, że serwer innej firmy, np. serwer e-mail naprawdę wysyła wiadomość z powiadomieniem na serwery Google GCM. Jest to usługa świadczona przez Google bezpłatnie, a każda taka strona trzecia musi wdrożyć kanał komunikacyjny z serwerami Google przy użyciu ich protokołu GCN. Nawiasem mówiąc, protokół jest właściwie tylko odpowiedzią HTTP sformatowaną w JSON. Zobacz https://developers.google.com/cloud-messaging/, aby uzyskać szczegółowe informacje. –
- 1. Jak wyświetlić obraz w systemie powiadomień push (Gcm) na Androida?
- 2. Licznik resetowania powiadomień Push push
- 3. Klejnot dla powiadomień push dla Androida i iOS
- 4. Token urządzenia powiadomień Push?
- 5. Cicha powiadomień push Ładowność
- 6. Obsługa powiadomień push
- 7. Dane powiadomień push pobieranie
- 8. Wysyłanie powiadomień wypychanych na Androida przez node.js
- 9. Wiele powiadomień push na 1 urządzeniu - iPhone
- 10. Strategia dla powiadomień Push na Safari
- 11. Odznaka powiadomień Push po inkrementacji
- 12. Limity na dźwiękach powiadomień push iPhone'a?
- 13. Analizowanie: wysyłanie powiadomień push z aplikacji
- 14. Jak zaimplementować XMPP do wysyłania powiadomień push
- 15. Priorytet powiadomień push systemu iOS
- 16. AWS Wyjaśnienie powiadomień push SNS
- 17. Jak grupować wiadomości Push na Androida
- 18. Jak dodać powiadomienie push w mojej własnej aplikacji na Androida
- 19. Powiadomienia push na Androida 2.3 uległy awarii.
- 20. Sprawdzanie powiadomień push rejestracji: isRegisteredForRemoteNotifications nie aktualizowanie
- 21. Usunięcie paska powiadomień w aplikacji na Androida
- 22. Jak rejestrować push push od powiadomienia Parse Push
- 23. Niestandardowy format powiadomień Push systemu iOS
- 24. Każdy baner powiadomień push jest wyświetlany dwukrotnie na iOS9
- 25. obsługa wysyłania powiadomień push do różnych widoków
- 26. System powiadomień z p: poll/push
- 27. Przykład tokenu urządzenia iOS dla powiadomień Push
- 28. Najlepszy sposób wdrożenia systemów powiadomień Push
- 29. Powiadomienia push na Androida: Google GCM a Amazon SNS?
- 30. Jabłko powiadomień push Odpowiedź Service - jak często ma to sprawdzić
Brzmi jak prawdziwe pytanie do mnie. Zastanawiałem się nad odpowiedzią na to pytanie, a Google sprowadziło mnie tutaj. Kolejne pytanie jakościowe zostało zamknięte. –
Też chcę to wiedzieć i planowałem napisać pytanie, ale jest już to, więc jest to zdecydowanie dobre pytanie. – PSIXO