Dies ist eine Erweiterung auf RabbitMQ for Java: how to send multiple float values?RabbitMQ für Java: Wie man mehrere Werte sendet?
Statt 3 float Parameter, möchte ich drei verschiedene Klassen als Parameter senden, und ich möchte das JSon-Protokoll verwenden.
Der Server ist in C# geschrieben. Daher dekodiere ich die JSon-String-Methode der Serverseite.
Grundsätzlich ist die Lösung auf der anderen Beitrag in Bezug auf die Schwimmer angeboten wird, ist wie folgt:
final ByteBuffer buf = ByteBuffer.allocate(12) // 3 floats
.putFloat(f1).putFloat(f2).putFloat(f3); // put them; .put*() return this
channel.basicPublish(buf.array()); // send
Dadurch werden die Schwimmer in Big-Endian (Standard-Netzwerk-Auftrag und was Java verwendet auch) schreiben.
Auf der Empfangsseite, würden Sie tun:
// delivery is a QueuingConsumer.Delivery
final ByteBuffer buf = ByteBuffer.wrap(delivery.getBody());
final float f1 = buf.getFloat();
final float f2 = buf.getFloat();
final float f3 = buf.getFloat();
aber I Klasse Auto, Flugzeug, Boot als JSon von Java nach C# formatiert senden möchten