Push bildirimleri nasıl çalışır?


25

Anında bildirim sistemi nasıl çalışıyor merak ediyorum?

Arka planda çalışan Google sunucularına etkin bir TCP / IP bağlantısı var mı?


1
Vikipedi'ye bakın - kuşkusuz okumak biraz zor. Temel olarak ve kolay kelimelerle ifade edilir: İstemci sunucuya bağlanır ve bilgilendirilmesini ister - ve sonra bilgi mevcut olduğunda (ya da hiçbir zaman yoksa hiçbir zaman) cevap "ertelenir". Yeni istek. Yani evet, bu kalıcı bir arkaplan TCP / IP bağlantısını gerektirir;
Izzy

@Ezzy doğru olamaz, çünkü (1) dokümanlar mesaj geldiğinde bir Amaç oluşturulduğunu söylüyorlar ve (2) Android'de çalışanlar Android'in asla öldüremediği bir bağlantıyı açık tutabilir mi?
Michael,

@Michael Hangi dokümanlar? Ben derinliğini anlayacak bir Android programcısı değilim (ve bu tartışma panosu değil), bu yüzden muhtemelen burada sizinle tartışamam. Ben duydum dinleyiciler (yayınları için) dinamik olarak kurulabilir - fakat hakkında böyle duymadım niyet (IMHO onlar lazım beyan içinde Manifest). Bazı Google hizmetlerinin "gerçek işi" yaptığını ve uygulamanın bir "alıcı" kaydettiğini hayal edebiliyorum. Yukarıdaki açıklama, Android'e özgü değil, daha "genel" idi ve basit tutmaya çalıştım;)
Izzy

Yanıtlar:


25

Evet, Android Google’ın sunucularıyla etkin bir bağlantı kuruyor, ancak çok fazla güç veya veri kullanmıyor, çünkü bir şey telefonunuzdaki bir uygulamaya GCM mesajı gönderinceye kadar trafik gönderilmiyor. Telefonda, tüm uygulamalar tarafından kullanılan tek bir bağlantı var: GCM kullanan yeni bir uygulama yüklemek herhangi bir ekstra yük eklemiyor.

GCM'deki ilk adım, üçüncü taraf bir sunucunun (bir e-posta sunucusu gibi) Google’ın GCM sunucusuna bir istek göndermesidir. Bu sunucu daha sonra mesajı cihazınıza açık bağlantı ile gönderir. Android sistemi, hangi uygulamanın onun için olduğunu belirleyen mesaja bakar ve bu uygulamayı başlatır. Uygulama, GCM'yi kullanmak için Android'e kayıtlı olmalı ve ilgili izne sahip olmalıdır. Uygulama başladığında, mesajdaki verilerle hemen bir bildirim oluşturabilir. GCM mesajlarının boyutu oldukça sınırlıdır, bu nedenle uygulama daha fazla bilgi almak için üçüncü taraf sunucuya normal bir bağlantı açabilir (örneğin, yeni e-postaların başlıklarını indirme).

Push bildirimleri kullanmanın avantajı, uygulamaların yeni verileri kontrol etmek için düzenli aralıklarla çalışması gerekmemesi, hem güç hem de veri tasarrufu sağlamasıdır. GCM gibi merkezi bir mekanizmaya sahip olmanın avantajı, cihazın yalnızca bir açık ağ bağlantısına ihtiyaç duymasıdır ve Android GCM sistemi, kendi ağını korumak için arka planda çalışmaya devam etmek zorunda kalmak yerine her uygulamanın çalışmaya devam etmesi gereken tek şeydir. kendi sunucusuna bağlantı.


Sadece 1 yorum eklerdim: GCM mesajlarının boyutu 4KB olabilir, bu yüzden sınırlı değiller. developer.android.com/google/gcm/gcm.html
Moszi

Bu bağlantıyı açık tutan nedir? Herhangi bir Android etkinliği veya servisi herhangi bir zamanda öldürülebilir.
Michael

1
Bilgi için teşekkürler. Soruma göre , açılan soketin URL’si nedir biliyor musunuz? (Aygıttan açılan ve GCM sunucularına açılan ve bildirim verileri için kullanılan bağlantının URL'si)
Sabeti

6

Android işletim sistemi artık Push Notification WS için GCM (Google Cloud Messaging) kullanıyor. Burada daha iyi bir fikir edinebilirsiniz ; Yaşam Döngüsü ile Tam Push Bildirim Hizmeti hakkında Mimari Genel Bir Bakış sağlayacaktır.

Umarım yardımcı olur.


Google’ın sunucularına güvenmek zorunda kalmadan benzer bir şey yapmanın bir yolu var mı?
Michael,

@Michael Amazon Cloud hizmetlerini kullanıyor musunuz? Karşılaştırılabilir bir konsepte sahipler gibi görünüyor. Ama "nasıl yapılır" diye yanlış yer burası;)
Izzy

1

Eski soruya geç cevap ama koymaya değer.

GCM, geçen Nisan 2018’de kullanımdan kaldırılmıştır ve Google, GCM’ye benzeyen FCM’nin kullanılmasını önermiştir.

  1. kendi kayıt veya abonelik yeniden deneme mantığımızı yazmamıza gerek yok
  2. Firebase Analytics içgörülerine dayanarak belirli kitleleri hedeflemek için bildirim göndermesini sağlayan web konsolu ile sunucusuz bir bildirim çözümü olan Firebase Bildirimleri'ni kullanabilirsiniz.
  3. GCM'nin temel altyapısına sahiptir.
  4. Tek bir mesaj, bir istemci uygulamasına 4 KB'ye kadar yük taşıyabilir.

1
Uygulama açısından bakıldığında FCM, GCM'ye benzer değildir, aynıdır. FCM, GCM'nin sadece yeni adıdır.
Robert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.