All Products
Search
Document Center

Simple Message Queue (formerly MNS):Pilih metode pengkodean untuk badan pesan

Last Updated:Jul 02, 2025

Klien Simple Message Queue (SMQ) menyediakan opsi untuk mengkodekan pesan menggunakan Base64. Topik ini menjelaskan kapan harus menggunakan pengkodean Base64 dalam berbagai skenario produksi dan konsumsi.

Informasi latar belakang

Pengkodean Base64 digunakan untuk mengonversi data biner menjadi string ASCII. Metode ini sering digunakan untuk mentransmisikan data di lingkungan yang memerlukan pemrosesan teks.

Keuntungan Penggunaan Pengkodean Base64

  • Kompatibilitas: String yang dikodekan Base64 terdiri dari karakter ASCII yang dapat dicetak, sehingga cocok untuk transmisi dalam format teks seperti email, JSON, dan XML. Ini mencegah teks berantakan yang mungkin terjadi dengan data biner.

  • Keamanan: Meskipun bukan metode enkripsi, pengkodean Base64 menyamarkan data biner mentah, mencegah tampilan langsung dalam beberapa format teks murni. Hal ini meningkatkan keamanan data sampai batas tertentu.

  • Kesederhanaan: Proses pengkodean dan dekode Base64 relatif sederhana. Banyak bahasa pemrograman dan pustaka mendukung pengkodean Base64.

Kerugian Penggunaan Pengkodean Base64

  • Ukuran Data Lebih Besar: Pengkodean Base64 meningkatkan ukuran data sekitar 33%. Jika Anda mengkodekan file biner besar menggunakan Base64, ukuran file yang telah dikodekan akan lebih besar daripada file aslinya.

  • Efisiensi Lebih Rendah: Dekode membutuhkan sumber daya komputasi tambahan, terutama ketika sejumlah besar data perlu diproses. Hal ini dapat secara signifikan meningkatkan overhead performa.

  • Tingkat Keterbacaan Rendah: Badan pesan yang telah dikodekan tidak dapat dibaca oleh manusia.

Saran

Model perpesanan berbasis antrian

Jika badan pesan tidak mengandung karakter khusus, disarankan untuk tidak menggunakan pengkodean Base64.

  • Untuk mengirim pesan, gunakan metode message.setMessageBodyAsRawString untuk menetapkan badan pesan.

  • Untuk menerima pesan, gunakan metode message.getMessageBodyAsRawString untuk mendapatkan badan pesan.

Model perpesanan berbasis topik (tipe langganan: Antrian atau HTTP)

Dalam model perpesanan berbasis topik, parameter NotifyContentFormat menentukan format pesan yang dikirimkan kepada subscriber. Tiga format pesan didukung: SIMPLIFIED, JSON, dan XML. Untuk informasi lebih lanjut, lihat bagian "Format Pesan" dari topik Subscription.

  • SIMPLIFIED: Jika badan pesan tidak mengandung karakter khusus, disarankan untuk tidak menggunakan pengkodean Base64.

    • Untuk mengirim pesan ke topik, gunakan metode RawTopicMessage untuk menginisialisasi objek pesan.

    • Untuk mengonsumsi pesan dari antrian, gunakan metode message.getMessageBodyAsRawString() untuk mendapatkan badan pesan.

  • JSON atau XML: Jika string ditransmisikan dalam format teks seperti JSON atau XML, disarankan untuk menggunakan pengkodean Base64.

    • Untuk mengirim pesan ke topik, gunakan metode TopicMessage untuk menginisialisasi objek pesan. Dalam hal ini, badan pesan dikodekan Base64 dan disimpan di bidang Message untuk transmisi.

    • Untuk mengonsumsi pesan dari antrian, gunakan metode message.getMessageBodyAsRawString(); untuk mendapatkan nilai bidang Message, kemudian lakukan dekode Base64.

      JSONObject object = new JSONObject(message.getMessageBodyAsRawString());
      String jsonMessageData = String.valueOf(object.get("Message"));
      String messageBody = new String(Base64.decodeBase64(jsonMessageData));

Model perpesanan berbasis topik (tipe langganan: Direct Mail)

Jika badan pesan tidak mengandung karakter khusus, disarankan untuk tidak menggunakan pengkodean Base64.

  • Untuk mengirim pesan, gunakan metode message.setMessageBodyAsRawString untuk menetapkan badan pesan.

  • Untuk menerima pesan, gunakan metode message.getMessageBodyAsRawString untuk mendapatkan badan pesan.

Model perpesanan berbasis topik (tipe langganan: SMS)

Jika badan pesan tidak mengandung karakter khusus, disarankan untuk tidak menggunakan pengkodean Base64.

  • Untuk mengirim pesan, gunakan metode message.setMessageBodyAsRawString untuk menetapkan badan pesan.

  • Untuk menerima pesan, gunakan metode message.getMessageBodyAsRawString untuk mendapatkan badan pesan.

Model perpesanan berbasis topik (tipe langganan: Mobile Push)

Jika badan pesan tidak mengandung karakter khusus, disarankan untuk tidak menggunakan pengkodean Base64.

  • Untuk mengirim pesan, gunakan metode message.setMessageBodyAsRawString untuk menetapkan badan pesan.

  • Untuk menerima pesan, gunakan metode message.getMessageBodyAsRawString untuk mendapatkan badan pesan.