Mengodekan Objek Biner dengan ByteStream Encoder

Mengirim dan menerima data biner mentah dengan Windows Communication Foundation (WCF) dikonfigurasi menggunakan ByteStreamMessageEncodingBindingElement.

Arsitektur Aliran Byte untuk Encoder Pesan

Encoder pesan biner yang digunakan oleh WCF tidak memiliki fasilitas untuk memproses, memvalidasi, atau mengidentifikasi data biner yang mendasari dalam pesan. Paket data dikodekan ke dalam XML, dikirim, diterima, dan didekodekan. Encoder memproses data setelah diteruskan ke transportasi dan sebelum pesan dikirim ke antrean pesan. Secara fungsional, encoder biner membungkus data pesan dalam <binary> elemen untuk mengirim dan menghapus elemen setelah pesan diterima.

Menggunakan Encoder Pesan Aliran Bita

Contoh berikut menunjukkan kontrak layanan yang mengimplementasikan encoder pesan aliran byte.

[OperationContract]  
Void Myfunction(Stream stream);  

Contoh berikut menunjukkan layanan yang sedang dipanggil.

proxy.MyFunction(stream);  

Dalam kasus menggunakan layanan yang mengimplementasikan infrastruktur pesan (seperti router), pesan diproses tanpa memeriksa, memvalidasi, atau berinteraksi dengan pesan, seperti yang ditunjukkan dalam contoh berikut.

[OperationContract]  
void ProcessMessage(Message message) ;  

Skenario

Byte Stream Encoder berguna dalam skenario berikut.

  • Mentransfer gambar JPEG antar komputer menggunakan WCF. Dalam skenario ini, gambar akan tiba melalui transportasi dari sumber luar, dan data yang dikirim akan menjadi byte mentah yang membentuk gambar. Layanan akan menerima data biner dan menampilkan gambar.

  • Membaca informasi dari antrean pesan dan memprosesnya. Pesan akan dibaca dari pengelola antrean pesan, dan diteruskan ke saluran antrean pesan untuk ditangani. Saluran antrean pesan akan bertindak sebagai pengelola antrean di tumpukan saluran WCF.

Dalam kasus pengiriman pesan melalui saluran antrean pesan, pengirim tidak memiliki kontrol atas byte yang diterima dari manajer antrean. Jika proses penerimaan tidak memiliki kemampuan untuk membaca byte mentah, pesan akan diterima dengan format buruk dan tidak akan diproses; diasumsikan bahwa proses penerimaan akan memiliki kemampuan untuk menerjemahkan byte yang diterima kembali ke dalam format yang dapat digunakan.