Konstruktor Message default pada ApsaraMQ for RocketMQ .NET SDK menginterpretasikan parameter body sebagai string, sehingga merusak data biner yang dihasilkan dari serialisasi Protocol Buffers (Protobuf). Untuk mengirim pesan yang telah diserialisasi dengan Protobuf, gunakan konstruktor tanpa parameter body, lalu panggil metode setBody untuk meneruskan byte mentah secara langsung.
Solusi
Gunakan konstruktor yang tidak memiliki parameter body, kemudian panggil metode setBody untuk mengatur body pesan. Pendekatan ini memastikan SDK kompatibel dengan byte string yang dihasilkan setelah data diserialisasi menggunakan Protobuf.
Referensi metode setBody
Metode setBody menulis byte mentah ke dalam body pesan, melewati enkode string yang digunakan oleh konstruktor default.
public void setBody(byte[] byte_msgbody, int len)| Parameter | Type | Description |
|---|---|---|
byte_msgbody | byte[] | Body pesan dalam bentuk array byte |
len | int | Panjang array byte |