Menerima Pesan pada Aplikasi Klien C++

Untuk menerima pesan downstream sederhana, setiap aplikasi klien harus mengimplementasikan metode pada firebase::messaging::Listener API.

Menginisialisasi FCM

Agar dapat menggunakan FCM untuk mengakses token pendaftaran atau menerima pesan, Anda harus melakukan inisialisasi terlebih dahulu.

Untuk menginisialisasi FCM, panggil ::firebase::messaging::Initialize dan masukkan objek ::firebase::App serta implementasi class ::firebase::messaging::Listener ke dalamnya.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

Mengakses token pendaftaran

Pada saat aplikasi pertama kali dimulai, FCM SDK akan menghasilkan token pendaftaran untuk instance aplikasi klien. Jika ingin menargetkan satu perangkat atau membuat grup perangkat untuk FCM, Anda membutuhkan akses ke token ini.

Anda dapat mengakses nilai token melalui fungsi virtual ::firebase::messaging::Listener::OnTokenReceived.

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

Menerima dan menangani pesan

Untuk menerima pesan, class Listener Anda harus mengimplementasikan fungsi virtual OnMessage.

Mengganti OnMessage

Dengan mengganti metode ::firebase::messaging::Listener::OnMessage, Anda dapat melakukan tindakan berdasarkan pesan yang diterima dan mendapatkan data pesan:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

Pesan dapat mewakili berbagai jenis data yang masuk. Yang paling umum, pesan dikirim ke aplikasi setelah dimulai oleh developer. Pesan juga dikirim ke aplikasi Anda untuk mewakili peristiwa pesan terkirim, peristiwa error saat mengirimkan pesan, dan peristiwa pesan dihapus. Peristiwa khusus ini bisa dibedakan dengan memeriksa kolom Message::message_type.

Pesan Dihapus

Pesan dikirim ke aplikasi Anda saat server FCM menghapus pesan yang tertunda. Message::message_type akan menjadi "deleted_messages". Pesan bisa dihapus karena:

  1. Terlalu banyak pesan yang tersimpan di server FCM.

    Hal ini dapat terjadi jika server aplikasi mengirim sekumpulan pesan yang tidak dapat diciutkan ke server FCM saat perangkat sedang offline.

  2. Perangkat tidak terhubung dalam waktu lama, dan server aplikasi baru-baru ini (dalam 4 minggu terakhir) mengirim pesan ke aplikasi di perangkat tersebut.

    Sebaiknya lakukan sinkronisasi penuh antara aplikasi dan server aplikasi setelah menerima panggilan ini.

Peristiwa Kirim

Dipanggil saat pesan upstream berhasil dikirim ke server koneksi FCM. Message::message_type akan menjadi "send_event".

Error Saat Mengirim

Dipanggil saat terjadi error dalam pengiriman pesan upstream. Message::message_type akan menjadi "send_error".

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.