Bagikan melalui


Google Cloud Messaging

Peringatan

GCM google tidak digunakan lagi per 10 April 2018. Dokumen dan proyek sampel berikut mungkin tidak lagi dipertahankan. API server dan klien GCM Google akan dihapus segera setelah 29 Mei 2019. Google merekomendasikan migrasi aplikasi GCM ke Firebase Cloud Messaging (FCM). Untuk informasi selengkapnya tentang penghentian dan migrasi GCM, lihat Google Cloud Messaging yang Tidak Digunakan Lagi.

Untuk mulai menggunakan Firebase Cloud Messaging dengan Xamarin, lihat Firebase Cloud Messaging.

Google Cloud Messaging (GCM) adalah layanan yang memfasilitasi olahpesan antara aplikasi seluler dan aplikasi server. Artikel ini memberikan gambaran umum tentang cara kerja GCM, dan menjelaskan cara mengonfigurasi Layanan Google sehingga aplikasi Anda dapat menggunakan GCM.

Google Cloud Messaging logo

Topik ini memberikan gambaran umum tingkat tinggi tentang bagaimana Google Cloud Messaging merutekan pesan antara aplikasi Anda dan server aplikasi, dan menyediakan prosedur langkah demi langkah untuk memperoleh kredensial sehingga aplikasi Anda dapat menggunakan layanan GCM.

Gambaran Umum

Google Cloud Messaging (GCM) adalah layanan yang menangani pengiriman, perutean, dan antrean pesan antara aplikasi server dan aplikasi klien seluler. Aplikasi klien adalah aplikasi berkemampuan GCM yang berjalan di perangkat. Server aplikasi (disediakan oleh Anda atau perusahaan Anda) adalah server berkemampuan GCM yang berkomunikasi dengan aplikasi klien Anda melalui GCM:

GCM resides between the client app and the app server

Dengan menggunakan GCM, server aplikasi dapat mengirim pesan ke satu perangkat, sekelompok perangkat, atau sejumlah perangkat yang berlangganan topik. Aplikasi klien Anda dapat menggunakan GCM untuk berlangganan pesan hilir dari server aplikasi (misalnya, untuk menerima pemberitahuan jarak jauh). Selain itu, GCM memungkinkan aplikasi klien untuk mengirim pesan upstream kembali ke server aplikasi.

Google Cloud Messaging in Action

Saat pesan hilir dikirim dari server aplikasi ke aplikasi klien, server aplikasi mengirim pesan ke server koneksi GCM; server koneksi GCM, pada gilirannya, meneruskan pesan ke perangkat yang menjalankan aplikasi klien Anda. Pesan dapat dikirim melalui HTTP atau XMPP (Extensible Messaging and Presence Protocol). Karena aplikasi klien tidak selalu terhubung atau berjalan, server koneksi GCM mengantre dan menyimpan pesan, mengirimnya ke aplikasi klien saat terhubung kembali dan tersedia. Demikian pula, GCM akan mengantrekan pesan upstream dari aplikasi klien ke server aplikasi jika server aplikasi tidak tersedia.

GCM menggunakan kredensial berikut untuk mengidentifikasi server aplikasi dan aplikasi klien Anda, dan menggunakan kredensial ini untuk mengotorisasi transaksi pesan melalui GCM:

  • Kunci API – Kunci API memberi server aplikasi Anda akses ke layanan Google; GCM menggunakan kunci ini untuk mengautentikasi server aplikasi Anda. Sebelum dapat menggunakan layanan GCM, Anda harus terlebih dahulu mendapatkan kunci API dari Google Developer Console dengan membuat proyek. Kunci API harus tetap aman; untuk informasi selengkapnya tentang melindungi kunci API Anda, lihat Praktik terbaik untuk menggunakan kunci API dengan aman.

  • ID Pengirim – ID Pengirim mengotorisasi server aplikasi ke aplikasi klien Anda - ini adalah nomor unik yang mengidentifikasi server aplikasi yang diizinkan untuk mengirim pesan ke aplikasi klien Anda. ID pengirim juga merupakan nomor proyek Anda; Anda mendapatkan ID pengirim dari Google Developers Console saat mendaftarkan proyek.

  • Token Pendaftaran – Token Pendaftaran adalah identitas GCM aplikasi klien Anda pada perangkat tertentu. Token pendaftaran dihasilkan pada waktu proses – aplikasi Anda menerima token pendaftaran saat pertama kali mendaftar dengan GCM saat berjalan di perangkat. Token pendaftaran mengotorisasi instans aplikasi klien Anda (berjalan di perangkat tertentu) untuk menerima pesan dari GCM.

  • ID Aplikasi – Identitas aplikasi klien Anda (independen dari perangkat tertentu) yang mendaftar untuk menerima pesan dari GCM. Di Android, ID aplikasi adalah nama paket yang direkam dalam AndroidManifest.xml, seperti com.xamarin.gcmexample.

Menyiapkan Google Cloud Messaging (nanti dalam panduan ini) memberikan petunjuk terperinci untuk membuat proyek dan menghasilkan kredensial ini.

Bagian berikut menjelaskan bagaimana kredensial ini digunakan saat aplikasi klien berkomunikasi dengan server aplikasi melalui GCM.

Pendaftaran dengan GCM

Aplikasi klien yang diinstal pada perangkat harus terlebih dahulu mendaftar dengan GCM sebelum olahpesan dapat berlangsung. Aplikasi klien harus menyelesaikan langkah-langkah pendaftaran yang ditunjukkan dalam diagram berikut:

App registration steps

  1. Aplikasi klien menghubungi GCM untuk mendapatkan token pendaftaran, meneruskan ID pengirim ke GCM.

  2. GCM mengembalikan token pendaftaran ke aplikasi klien.

  3. Aplikasi klien meneruskan token pendaftaran ke server aplikasi.

Server aplikasi menyimpan token pendaftaran untuk komunikasi berikutnya dengan aplikasi klien. Secara opsional, server aplikasi dapat mengirim pengakuan kembali ke aplikasi klien untuk menunjukkan bahwa token pendaftaran diterima. Setelah jabat tangan ini terjadi, aplikasi klien dapat menerima pesan dari (atau mengirim pesan ke) server aplikasi.

Ketika aplikasi klien tidak lagi ingin menerima pesan dari server aplikasi, aplikasi dapat mengirim permintaan ke server aplikasi untuk menghapus token pendaftaran. Jika aplikasi klien menerima pesan topik (dijelaskan nanti dalam artikel ini), aplikasi klien dapat berhenti berlangganan dari topik tersebut. Jika aplikasi klien dihapus instalannya dari perangkat, GCM mendeteksi ini dan secara otomatis memberi tahu server aplikasi untuk menghapus token pendaftaran.

Olahpesan Hilir

Saat server aplikasi mengirim pesan hilir ke aplikasi klien, server aplikasi mengikuti langkah-langkah yang diilustrasikan dalam diagram berikut:

Downstream messaging store and forward diagram

  1. Server aplikasi mengirim pesan ke GCM.

  2. Jika perangkat klien tidak tersedia, server GCM menyimpan pesan dalam antrean untuk transmisi nanti.

  3. Saat perangkat klien tersedia, GCM mengirimkan pesan ke aplikasi klien di perangkat tersebut.

  4. Aplikasi klien menerima pesan dari GCM dan menanganinya dengan sesuai. Misalnya, jika pesan adalah pemberitahuan jarak jauh, pesan tersebut disajikan kepada pengguna.

Dalam skenario olahpesan ini (di mana server aplikasi mengirim pesan ke satu aplikasi klien), panjang pesan dapat mencapai 4kB.

Untuk informasi terperinci (termasuk sampel kode) tentang menerima pesan GCM hilir di Android, lihat Pemberitahuan Jarak Jauh.

Pesan Topik

Pesan Topik adalah jenis olahpesan hilir tempat server aplikasi mengirim satu pesan ke beberapa perangkat aplikasi klien yang berlangganan topik (seperti prakiraan cuaca). Panjang pesan topik dapat mencapai 2KB, dan pesan topik mendukung hingga satu juta langganan per aplikasi. Jika GCM digunakan hanya untuk pesan topik, aplikasi klien tidak diperlukan untuk mengirim token pendaftaran ke server aplikasi.

Pesan Grup

Pesan Grup adalah jenis pesan hilir tempat server aplikasi mengirim satu pesan ke beberapa perangkat aplikasi klien yang termasuk dalam grup (misalnya, sekelompok perangkat yang termasuk dalam satu pengguna). Panjang pesan grup dapat mencapai 2KB untuk perangkat iOS, dan panjang hingga 4KB untuk perangkat Android. Grup dibatasi hingga maksimal 20 anggota.

Olahpesan Upstream

Jika aplikasi klien Anda tersambung ke server yang mendukung XMPP, aplikasi tersebut dapat mengirim pesan kembali ke server aplikasi seperti yang diilustrasikan dalam diagram berikut:

Upstream messaging diagram

  1. Aplikasi klien mengirim pesan ke server koneksi GCM XMPP.

  2. Jika server aplikasi terputus, server GCM menyimpan pesan dalam antrean untuk penerusan nanti.

  3. Saat server aplikasi tersambung kembali, GCM meneruskan pesan ke server aplikasi.

  4. Server aplikasi mengurai pesan untuk memverifikasi identitas aplikasi klien, lalu mengirim "ack" ke GCM untuk mengakui tanda terima pesan.

  5. Server aplikasi memproses pesan.

Pesan Upstream Google menjelaskan cara menyusun pesan yang dikodekan JSON dan mengirimkannya ke server aplikasi yang menjalankan Cloud Koneksi ion Server berbasis XMPP Google.

Menyiapkan Google Cloud Messaging

Sebelum dapat menggunakan layanan GCM di aplikasi, Anda harus terlebih dahulu memperoleh kredensial untuk akses ke server GCM Google. Bagian berikut menjelaskan langkah-langkah yang diperlukan untuk menyelesaikan proses ini:

Mengaktifkan Layanan Google untuk Aplikasi Anda

  1. Masuk ke Google Developers Console dengan akun Google Anda (yaitu, alamat gmail Anda) dan buat proyek baru. Jika Anda memiliki proyek yang sudah ada, pilih proyek yang ingin Anda jadikan GCM-enabled. Dalam contoh berikut, proyek baru bernama XamarinGCM dibuat:

    Creating XamarinGCM project

  2. Selanjutnya, masukkan nama paket untuk aplikasi Anda (dalam contoh ini, nama paketnya adalah com.xamarin.gcmexample) dan klik Lanjutkan untuk Memilih dan mengonfigurasi layanan:

    Entering the package name

    Perhatikan bahwa nama paket ini juga merupakan ID aplikasi untuk aplikasi Anda.

  3. Bagian Pilih dan konfigurasikan layanan mencantumkan layanan Google yang dapat Anda tambahkan ke aplikasi Anda. Klik Olahpesan Cloud:

    Choose Cloud Messaging

  4. Selanjutnya, klik AKTIFKAN GOOGLE CLOUD MESSAGING:

    Enable Google Cloud Messaging

  5. Kunci API Server dan ID Pengirim dibuat untuk aplikasi Anda. Rekam nilai-nilai ini dan klik TUTUP:

    Server API Key and Sender ID displayed

    Lindungi kunci API - kunci tersebut tidak ditujukan untuk penggunaan publik. Jika kunci API disusupi, server yang tidak sah dapat menerbitkan pesan ke aplikasi klien. Praktik terbaik untuk menggunakan kunci API dengan aman menyediakan panduan yang berguna untuk melindungi Kunci API Anda.

Menampilkan Pengaturan Proyek Anda

Anda dapat melihat setelan proyek kapan saja dengan masuk ke Google Cloud Console dan memilih proyek Anda. Misalnya, Anda dapat melihat ID Pengirim dengan memilih proyek Anda di menu tarik turun di bagian atas halaman (dalam contoh ini, proyek disebut XamarinGCM). ID Pengirim adalah nomor Proyek seperti yang ditunjukkan pada cuplikan layar ini (ID Pengirim di sini 9349932736):

Viewing the Sender ID

Untuk melihat kunci API, klik API Manager lalu klik Kredensial:

Viewing the API key

Bacaan Lebih Lanjut

  • RFC 6120 dan RFC 6121 menjelaskan dan menentukan Extensible Messaging and Presence Protocol (XMPP).

Ringkasan

Artikel ini memberikan gambaran umum tentang Google Cloud Messaging (GCM). Ini menjelaskan berbagai kredensial yang digunakan untuk mengidentifikasi dan mengotorisasi otorisasi olahpesan antara server aplikasi dan aplikasi klien. Ini menggambarkan skenario olahpesan yang paling umum, dan merinci langkah-langkah untuk mendaftarkan aplikasi Anda dengan GCM untuk menggunakan layanan GCM.