Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Google, GCM'yi 10 Nisan 2018 itibarıyla kullanım dışı bırakılmıştır. Aşağıdaki belgeler ve örnek projeler artık korunamayabilir. Google'ın GCM sunucusu ve istemci API'leri 29 Mayıs 2019'da kaldırılacaktır. Google, GCM uygulamalarının Firebase Cloud Messaging'e (FCM) geçirilmesini önerir. GCM'nin kullanımdan kaldırılması ve geçişi hakkında daha fazla bilgi için bkz . Google Kullanım Dışı Cloud Messaging.
Firebase Cloud Messaging'i Xamarin ile kullanmaya başlamak için bkz . Firebase Cloud Messaging.
Google Cloud Messaging (GCM), mobil uygulamalar ve sunucu uygulamaları arasında mesajlaşmayı kolaylaştıran bir hizmettir. Bu makalede GCM'nin nasıl çalıştığına genel bir bakış sağlanır ve uygulamanızın GCM'yi kullanabilmesi için Google Hizmetleri'ni yapılandırma açıklanmaktadır.
Bu konu başlığı altında, Google Cloud Messaging'in iletileri uygulamanızla uygulama sunucusu arasında nasıl yönlendirdiği hakkında üst düzey bir genel bakış sağlanır ve uygulamanızın GCM hizmetlerini kullanabilmesi için kimlik bilgilerini almak için adım adım bir yordam sağlanır.
Genel bakış
Google Cloud Messaging (GCM), sunucu uygulamaları ve mobil istemci uygulamaları arasında ileti gönderme, yönlendirme ve kuyruğa alma işlemlerini işleyen bir hizmettir. İstemci uygulaması, bir cihazda çalışan GCM özellikli bir uygulamadır. Uygulama sunucusu (siz veya şirketiniz tarafından sağlanan), istemci uygulamanızın GCM aracılığıyla iletişim kurdığı GCM özellikli sunucudur:
Uygulama sunucuları GCM'yi kullanarak tek bir cihaza, bir cihaz grubuna veya bir konuya abone olan birkaç cihaza ileti gönderebilir. İstemci uygulamanız bir uygulama sunucusundan aşağı akış iletilerine abone olmak için GCM kullanabilir (örneğin, uzak bildirimler almak için). Ayrıca GCM, istemci uygulamalarının uygulama sunucusuna yukarı akış iletileri göndermesini de mümkün kılar.
Google Cloud Messaging çalışıyor
Aşağı akış iletileri bir uygulama sunucusundan bir istemci uygulamasına gönderildiğinde, uygulama sunucusu iletiyi bir GCM bağlantı sunucusuna gönderir; GCM bağlantı sunucusu da iletiyi istemci uygulamanızı çalıştıran bir cihaza iletir. İletiler HTTP veya XMPP (Genişletilebilir Mesajlaşma ve İletişim Durumu Protokolü) üzerinden gönderilebilir. İstemci uygulamaları her zaman bağlı veya çalışır durumda olmadığından GCM bağlantı sunucusu iletileri sıralar ve depolar ve yeniden bağlanıp kullanılabilir hale geldikçe istemci uygulamalarına gönderir. Benzer şekilde, uygulama sunucusu kullanılamıyorsa GCM de istemci uygulamasından uygulama sunucusuna yukarı akış iletilerini sıralar.
GCM, uygulama sunucusunu ve istemci uygulamanızı tanımlamak için aşağıdaki kimlik bilgilerini kullanır ve GCM aracılığıyla ileti işlemlerini yetkilendirmek için bu kimlik bilgilerini kullanır:
API Anahtarı – API anahtarı , uygulama sunucunuza Google hizmetlerine erişim verir; GCM, uygulama sunucunuzun kimliğini doğrulamak için bu anahtarı kullanır. GCM hizmetini kullanabilmeniz için önce bir proje oluşturarak Google Geliştirici Konsolu'ndan bir API anahtarı almanız gerekir. API Anahtarı güvenli tutulmalıdır; API anahtarınızı koruma hakkında daha fazla bilgi için bkz . API anahtarlarını güvenli bir şekilde kullanmak için en iyi yöntemler.
Gönderen Kimliği – Gönderen Kimliği , uygulama sunucusunu istemci uygulamanıza yetki verir; istemci uygulamanıza ileti göndermesine izin verilen uygulama sunucusunu tanımlayan benzersiz bir numaradır. Gönderen kimliği aynı zamanda proje numaranızdır; projenizi kaydederken Google Developers Console'dan gönderen kimliğini alırsınız.
Kayıt Belirteci – Kayıt Belirteci , belirli bir cihazdaki istemci uygulamanızın GCM kimliğidir. Kayıt belirteci çalışma zamanında oluşturulur; uygulamanız bir cihazda çalışırken GCM'ye ilk kez kaydolduğunda bir kayıt belirteci alır. Kayıt belirteci, istemci uygulamanızın (söz konusu cihazda çalışan) bir örneğini GCM'den ileti almaya yetkiler.
Uygulama Kimliği – GCM'den ileti almaya kaydolan istemci uygulamanızın kimliği (belirli bir cihazdan bağımsız olarak). Android'de uygulama kimliği, gibi AndroidManifest.xml'de
com.xamarin.gcmexamplekaydedilen paket adıdır.
Google Cloud Messaging'i Ayarlama (bu kılavuzun ilerleyen bölümlerinde), proje oluşturma ve bu kimlik bilgilerini oluşturma hakkında ayrıntılı yönergeler sağlar.
Aşağıdaki bölümlerde, istemci uygulamaları GCM aracılığıyla uygulama sunucularıyla iletişim kurarken bu kimlik bilgilerinin nasıl kullanıldığı açıklanmaktadır.
GCM ile kayıt
Bir cihaza yüklenen bir istemci uygulamasının mesajlaşma gerçekleştirilmeden önce GCM'ye kaydolması gerekir. İstemci uygulamasının aşağıdaki diyagramda gösterilen kayıt adımlarını tamamlaması gerekir:
İstemci uygulaması, gcm'ye gönderen kimliğini geçirerek bir kayıt belirteci almak için GCM ile iletişim kurar.
GCM, istemci uygulamasına bir kayıt belirteci döndürür.
İstemci uygulaması kayıt belirtecini uygulama sunucusuna iletir.
Uygulama sunucusu, istemci uygulamasıyla sonraki iletişimler için kayıt belirtecini önbelleğe alır. İsteğe bağlı olarak, uygulama sunucusu kayıt belirtecinin alındığını belirtmek için istemci uygulamasına geri bir onay gönderebilir. Bu el sıkışma gerçekleştikten sonra, istemci uygulaması uygulama sunucusundan ileti alabilir (veya bu sunucuya ileti gönderebilir).
İstemci uygulaması artık uygulama sunucusundan ileti almak istemediğinde, kayıt belirtecini silmek için uygulama sunucusuna bir istek gönderebilir. İstemci uygulaması konu iletileri alıyorsa (bu makalenin ilerleyen bölümlerinde açıklanmıştır), konu aboneliğini kaldırabilir. İstemci uygulaması bir cihazdan kaldırılırsa GCM bunu algılar ve kayıt belirtecini silmesi için uygulama sunucusuna otomatik olarak bildirir.
Aşağı Akış Mesajlaşması
Uygulama sunucusu istemci uygulamasına aşağı akış iletisi gönderdiğinde, aşağıdaki diyagramda gösterilen adımları izler:
Uygulama sunucusu iletiyi GCM'ye gönderir.
İstemci cihazı kullanılamıyorsa, GCM sunucusu iletiyi daha sonra iletim için bir kuyrukta depolar.
İstemci cihaz kullanılabilir olduğunda GCM, iletiyi bu cihazdaki istemci uygulamasına gönderir.
İstemci uygulaması iletiyi GCM'den alır ve uygun şekilde işler. Örneğin, ileti uzaktan bir bildirimse kullanıcıya sunulur.
Bu mesajlaşma senaryosunda (uygulama sunucusunun tek bir istemci uygulamasına ileti gönderdiği), iletilerin uzunluğu en fazla 4 kb olabilir.
Android'de aşağı akış GCM iletilerini alma hakkında ayrıntılı bilgi (kod örnekleri dahil) için bkz . Uzaktan Bildirimler.
Konu Mesajlaşması
Konu Mesajlaşması , uygulama sunucusunun bir konuya abone olan birden çok istemci uygulama cihazına (hava durumu tahmini gibi) tek bir ileti gönderdiği bir aşağı akış mesajlaşma türüdür. Konu iletilerinin uzunluğu 2 KB'a kadar olabilir ve konu mesajlaşması uygulama başına bir milyona kadar aboneliği destekler. GCM yalnızca konu mesajlaşması için kullanılıyorsa, istemci uygulamasının uygulama sunucusuna kayıt belirteci göndermesi gerekmez.
Grup Mesajlaşması
Grup Mesajlaşması , uygulama sunucusunun bir gruba (örneğin, tek bir kullanıcıya ait olan bir cihaz grubu) birden çok istemci uygulaması cihazına tek bir ileti gönderdiği bir aşağı akış mesajlaşma türüdür. Grup iletilerinin uzunluğu iOS cihazları için en fazla 2 KB, Android cihazlar için ise en fazla 4 KB olabilir. Bir grup en fazla 20 üyeyle sınırlıdır.
Yukarı Akış Mesajlaşması
İstemci uygulamanız XMPP'yi destekleyen bir sunucuya bağlanıyorsa, aşağıdaki diyagramda gösterildiği gibi uygulama sunucusuna ileti gönderebilir:
İstemci uygulaması GCM XMPP bağlantı sunucusuna bir ileti gönderir.
Uygulama sunucusunun bağlantısı kesilirse GCM sunucusu iletiyi daha sonra iletilmesi için bir kuyrukta depolar.
Uygulama sunucusu yeniden bağlandığında GCM, iletiyi uygulama sunucusuna iletir.
Uygulama sunucusu, istemci uygulamasının kimliğini doğrulamak için iletiyi ayrıştırıyor, ardından iletinin alındığını onaylamak için GCM'ye bir "ack" gönderiyor.
Uygulama sunucusu iletiyi işler.
Google'ın Yukarı Akış İletileri, JSON ile kodlanmış iletilerin nasıl yapılandırıldığını ve Google'ın XMPP tabanlı Bulut Bağlan ion Sunucusu'nu çalıştıran uygulama sunucularına nasıl gönderildiğini açıklar.
Google Cloud Messaging'i ayarlama
Uygulamanızda GCM hizmetlerini kullanabilmeniz için önce Google'ın GCM sunucularına erişim için kimlik bilgilerini almanız gerekir. Aşağıdaki bölümlerde bu işlemi tamamlamak için gereken adımlar açıklanmaktadır:
Uygulamanız için Google Services'i etkinleştirme
Google hesabınızla (gmail adresiniz) Google Developers Console'da oturum açın ve yeni bir proje oluşturun. Mevcut bir projeniz varsa GCM özellikli olmasını istediğiniz projeyi seçin. Aşağıdaki örnekte XamarinGCM adlı yeni bir proje oluşturulur:
Ardından, uygulamanızın paket adını girin (bu örnekte paket adı com.xamarin.gcmexample'dır) ve Devam'a tıklayarak Hizmetleri seçin ve yapılandırın:
Bu paket adının aynı zamanda uygulamanızın uygulama kimliği olduğunu unutmayın.
Hizmetleri seçin ve yapılandırın bölümünde, uygulamanıza ekleyebileceğiniz Google hizmetleri listelenir. Cloud Messaging'e tıklayın:
Ardından, GOOGLE CLOUD MESSAGING'I ETKİnLEŞTİr'e tıklayın:
Uygulamanız için bir Sunucu API anahtarı ve Gönderen Kimliği oluşturulur. Bu değerleri kaydedin ve KAPAT'a tıklayın:
API anahtarını koruyun; genel kullanıma yönelik değildir. API anahtarının güvenliği aşılırsa, yetkisiz sunucular istemci uygulamalarına ileti yayımlayabilir. API anahtarlarını güvenli bir şekilde kullanmaya yönelik en iyi yöntemler, API Anahtarınızı korumaya yönelik yararlı yönergeler sağlar.
Proje Ayarlar Görüntüleme
İstediğiniz zaman Google Bulut Konsolu'nda oturum açıp projenizi seçerek proje ayarlarınızı görüntüleyebilirsiniz. Örneğin, sayfanın üst kısmındaki açılır menüden projenizi seçerek Gönderen Kimliğini görüntüleyebilirsiniz (bu örnekte projeye XamarinGCM adı verilir). Gönderen Kimliği, bu ekran görüntüsünde gösterildiği gibi Proje numarasıdır (buradaki Gönderen Kimliği 9349932736):
API anahtarını görüntülemek için API Manager'a ve ardından Kimlik Bilgileri'ne tıklayın:
Daha Fazla Bilgi İçin
- RFC 6120 ve RFC 6121 , Genişletilebilir mesajlaşma ve iletişim durumu protokollerini (XMPP) açıklar ve tanımlar.
Özet
Bu makalede Google Cloud Messaging'e (GCM) genel bir bakış sağlanmıştır. Uygulama sunucuları ve istemci uygulamaları arasında mesajlaşmayı tanımlamak ve yetkilendirmek için kullanılan çeşitli kimlik bilgileri açıklanmıştır. En yaygın mesajlaşma senaryolarını göstermiş ve GCM hizmetlerini kullanmak için uygulamanızı GCM'ye kaydetme adımlarını ayrıntılı olarak anlatmıştı.











