Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Upozorňující
Google od 10. dubna 2018 vyřadil GCM. Následující dokumenty a ukázkové projekty už nemusí být zachovány. Od 29. května 2019 dojde k odebrání serveru a klientských rozhraní API GCM společnosti Google. Google doporučuje migrovat aplikace GCM na Firebase Cloud Messaging (FCM). Další informace o vyřazení a migraci GCM najdete v tématu Vyřazení cloudových zpráv googlem.
Pokud chcete začít používat službu Firebase Cloud Messaging s Xamarinem, přečtěte si téma Firebase Cloud Messaging.
Google Cloud Messaging (GCM) je služba, která usnadňuje zasílání zpráv mezi mobilními aplikacemi a serverovými aplikacemi. Tento článek obsahuje přehled toho, jak GCM funguje, a vysvětluje, jak nakonfigurovat služby Google, aby vaše aplikace mohl používat GCM.
Toto téma obsahuje základní přehled o tom, jak Google Cloud Messaging směruje zprávy mezi vaší aplikací a aplikačním serverem, a poskytuje podrobný postup pro získání přihlašovacích údajů, aby vaše aplikace mohl používat služby GCM.
Přehled
Google Cloud Messaging (GCM) je služba, která zpracovává odesílání, směrování a zařazení zpráv do fronty mezi serverovými aplikacemi a mobilními klientskými aplikacemi. Klientská aplikace je aplikace s podporou GCM, která běží na zařízení. Aplikační server (poskytovaný vámi nebo vaší společností) je server s podporou GCM, se kterým vaše klientská aplikace komunikuje prostřednictvím GCM:
Pomocí GCM můžou aplikační servery odesílat zprávy do jednoho zařízení, skupiny zařízení nebo řady zařízení, která jsou přihlášená k odběru tématu. Klientská aplikace může používat GCM k přihlášení k odběru podřízených zpráv ze serveru aplikace (například pro příjem vzdálených oznámení). GCM také umožňuje klientským aplikacím odesílat nadřazené zprávy zpět na aplikační server.
Google Cloud Messaging v akci
Když se podřízené zprávy odesílají ze serveru aplikace do klientské aplikace, odešle server aplikace zprávu na server připojení GCM. Server připojení GCM pak zprávu přepošle na zařízení, na kterém běží vaše klientská aplikace. Zprávy lze odesílat přes protokol HTTP nebo XMPP (Extensible Messaging and Presence Protocol). Vzhledem k tomu, že klientské aplikace nejsou vždy připojené nebo spuštěné, server připojení GCM zařazuje a ukládá zprávy, odesílá je do klientských aplikací, jakmile se znovu připojí a zpřístupní. Podobně GCM zařadí upstreamové zprávy z klientské aplikace na aplikační server, pokud server aplikace není k dispozici.
GCM pomocí následujících přihlašovacích údajů identifikuje aplikační server a vaši klientskou aplikaci a pomocí těchto přihlašovacích údajů autorizuje transakce zpráv prostřednictvím GCM:
Klíč rozhraní API – Klíč rozhraní API poskytuje aplikačnímu serveru přístup ke službám Google; GCM používá tento klíč k ověření aplikačního serveru. Než budete moct službu GCM použít, musíte nejprve získat klíč rozhraní API z konzoly Google Developer Console vytvořením projektu. Klíč rozhraní API by měl být zabezpečený; Další informace o ochraně klíče rozhraní API najdete v tématu Osvědčené postupy pro bezpečné použití klíčů rozhraní API.
ID odesílatele – ID odesílatele autorizuje aplikační server do klientské aplikace – jedná se o jedinečné číslo, které identifikuje aplikační server, který umožňuje odesílat zprávy do klientské aplikace. ID odesílatele je také číslo vašeho projektu; při registraci projektu získáte ID odesílatele z konzoly Google Developers Console.
Registrační token – Registrační token je identita GCM vaší klientské aplikace na daném zařízení. Registrační token se vygeneruje za běhu – vaše aplikace obdrží registrační token, když se poprvé zaregistruje v GCM při spuštění na zařízení. Registrační token autorizuje instanci vaší klientské aplikace (spuštěné na tomto konkrétním zařízení) pro příjem zpráv z GCM.
ID aplikace – identita klientské aplikace (nezávisle na jakémkoli daném zařízení), která se registruje k příjmu zpráv od GCM. ID aplikace v Androidu je název balíčku zaznamenaný v AndroidManifest.xml, například
com.xamarin.gcmexample.
Nastavení služby Google Cloud Messaging (dále v této příručce) obsahuje podrobné pokyny k vytvoření projektu a generování těchto přihlašovacích údajů.
Následující části popisují, jak se tyto přihlašovací údaje používají, když klientské aplikace komunikují se servery aplikací prostřednictvím GCM.
Registrace pomocí GCM
Klientská aplikace nainstalovaná na zařízení se musí nejprve zaregistrovat ve službě GCM, aby bylo možné provést zasílání zpráv. Klientská aplikace musí dokončit kroky registrace uvedené v následujícím diagramu:
Klientská aplikace kontaktuje GCM, aby získala registrační token a předala ID odesílatele GCM.
GCM vrátí registrační token klientské aplikaci.
Klientská aplikace předá registrační token na aplikační server.
Aplikační server ukládá registrační token do mezipaměti pro následnou komunikaci s klientskou aplikací. Volitelně může aplikační server odeslat potvrzení zpět do klientské aplikace a indikovat, že byl přijat registrační token. Po provedení této metody handshake může klientská aplikace přijímat zprávy ze serveru aplikace (nebo odesílat zprávy).
Pokud už klientská aplikace nechce přijímat zprávy ze serveru aplikace, může odeslat žádost na aplikační server, aby odstranila registrační token. Pokud klientská aplikace dostává zprávy tématu (vysvětlené dále v tomto článku), může se odhlásit od odběru tématu. Pokud je klientská aplikace odinstalovaná ze zařízení, GCM ji zjistí a automaticky upozorní aplikační server, aby odstranil registrační token.
Podřízené zasílání zpráv
Když aplikační server odešle podřízenou zprávu klientské aplikaci, postupuje podle kroků znázorněných v následujícím diagramu:
Aplikační server odešle zprávu do GCM.
Pokud klientské zařízení není k dispozici, server GCM uloží zprávu do fronty pro pozdější přenos.
Jakmile je klientské zařízení k dispozici, odešle GCM zprávu klientské aplikaci na daném zařízení.
Klientská aplikace obdrží zprávu ze služby GCM a odpovídajícím způsobem ji zpracuje. Pokud je zpráva například vzdálená oznámení, zobrazí se uživateli.
V tomto scénáři zasílání zpráv (kde aplikační server odesílá zprávu do jedné klientské aplikace), můžou mít zprávy délku až 4 kB.
Podrobné informace (včetně ukázek kódu) o příjmu podřízených zpráv GCM v Androidu najdete v tématu Vzdálená oznámení.
Zasílání zpráv témat
Zasílání zpráv témat je typ podřízeného zasílání zpráv, kde aplikační server odesílá jednu zprávu do více klientských zařízení aplikací, která se přihlašují k odběru tématu (například předpověď počasí). Zprávy témat můžou mít délku až 2 kB a zasílání zpráv témat podporuje až jeden milion odběrů na aplikaci. Pokud se GCM používá jenom pro zasílání zpráv tématu, klientská aplikace není nutná k odeslání registračního tokenu na aplikační server.
Zasílání zpráv skupin
Zasílání zpráv skupiny je typ podřízeného zasílání zpráv, kde aplikační server odesílá jednu zprávu do více klientských zařízení aplikace, která patří do skupiny (například skupina zařízení, která patří jednomu uživateli). Skupinové zprávy můžou mít délku až 2 kB pro zařízení s iOSem a až 4 kB pro zařízení s Androidem. Skupina je omezena na maximálně 20 členů.
Upstreamové zasílání zpráv
Pokud se klientská aplikace připojí k serveru, který podporuje XMPP, může odesílat zprávy zpět na aplikační server, jak je znázorněno v následujícím diagramu:
Klientská aplikace odešle zprávu na server připojení XMPP GCM.
Pokud je aplikační server odpojený, server GCM uloží zprávu do fronty pro pozdější přeposílání.
Když je aplikační server znovu připojený, služba GCM zprávu přepošla na aplikační server.
Aplikační server analyzuje zprávu a ověří identitu klientské aplikace a pak odešle "ack" službě GCM, aby potvrdil potvrzení o přijetí zprávy.
Aplikační server zprávu zpracuje.
Upstreamové zprávy Společnosti Google vysvětlují, jak strukturovat zprávy kódované ve formátu JSON a odesílat je na aplikační servery, na kterých běží cloudový Připojení ion server založený na XMPP společnosti Google.
Nastavení služby Google Cloud Messaging
Než budete moct ve své aplikaci používat služby GCM, musíte nejprve získat přihlašovací údaje pro přístup k serverům GCM společnosti Google. Následující části popisují kroky potřebné k dokončení tohoto procesu:
Povolení služeb Google pro vaši aplikaci
Přihlaste se ke konzole Google Developers Console pomocí svého účtu Google (tj. vaší adresy gmailu) a vytvořte nový projekt. Pokud máte existující projekt, zvolte projekt, který chcete povolit GCM. V následujícím příkladu se vytvoří nový projekt S názvem XamarinGCM :
Dále zadejte název balíčku pro vaši aplikaci (v tomto příkladu je název balíčku com.xamarin.gcmexample) a klikněte na Pokračovat a zvolte a nakonfigurujte služby:
Všimněte si, že tento název balíčku je také ID aplikace pro vaši aplikaci.
Oddíl Zvolit a nakonfigurovat služby obsahuje seznam služeb Google, které můžete přidat do aplikace. Klikněte na Cloud Messaging:>
Dále klikněte na POVOLIT SLUŽBU GOOGLE CLOUD MESSAGING:
Pro vaši aplikaci se vygeneruje klíč rozhraní API serveru a ID odesílatele. Poznamenejte si tyto hodnoty a klikněte na ZAVŘÍT:
Chraňte klíč rozhraní API – není určený pro veřejné použití. Pokud dojde k ohrožení zabezpečení klíče rozhraní API, můžou neautorizované servery publikovat zprávy do klientských aplikací. Osvědčené postupy pro bezpečné používání klíčů rozhraní API poskytují užitečné pokyny pro ochranu klíče rozhraní API.
Zobrazení Nastavení projektu
Nastavení projektu můžete kdykoli zobrazit tak, že se přihlásíte ke konzole Google Cloud Console a vyberete projekt. ID odesílatele můžete zobrazit například tak, že v horní části stránky vyberete projekt v rozevírací nabídce (v tomto příkladu se projekt nazývá XamarinGCM). ID odesílatele je číslo projektu, jak je znázorněno na tomto snímku obrazovky (ID odesílatele je zde 9349932736):
Klíč rozhraní API zobrazíte tak, že kliknete na API Manager a potom kliknete na Přihlašovací údaje:
Pro další čtení
- RFC 6120 a RFC 6121 vysvětlují a definují protokol XMPP (Extensible Messaging and Presence Protocol).
Shrnutí
Tento článek poskytuje přehled služby Google Cloud Messaging (GCM). Vysvětlila různé přihlašovací údaje, které slouží k identifikaci a autorizaci zasílání zpráv mezi aplikačními servery a klientskými aplikacemi. Znázorňuje nejběžnější scénáře zasílání zpráv a podrobně popisuje postup registrace aplikace v GCM pro používání služeb GCM.











