|
@@ -0,0 +1,68 @@
|
|
|
|
+using System;
|
|
|
|
+using Amqp;
|
|
|
|
+using Amqp.Framing;
|
|
|
|
+using Amqp.Sasl;
|
|
|
|
+using Amqp.Types;
|
|
|
|
+
|
|
|
|
+namespace receive
|
|
|
|
+{
|
|
|
|
+ class Program
|
|
|
|
+ {
|
|
|
|
+ static void Main(string[] args)
|
|
|
|
+ {
|
|
|
|
+ string url = "amqp://localhost:61616";
|
|
|
|
+ string addr = "sampleTopic";
|
|
|
|
+
|
|
|
|
+ bool durable = false;
|
|
|
|
+ string cid = "";
|
|
|
|
+ if (args.Length > 0) {
|
|
|
|
+ durable = bool.Parse(args[0]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (durable && args.Length > 1) {
|
|
|
|
+ cid = args[1];
|
|
|
|
+ } else if (durable) {
|
|
|
|
+ cid = Guid.NewGuid().ToString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Address a = new Address(url);
|
|
|
|
+ Connection c;
|
|
|
|
+ if (durable) {
|
|
|
|
+ c = new Connection(a, SaslProfile.Anonymous,
|
|
|
|
+ new Open() { ContainerId = cid },
|
|
|
|
+ null);
|
|
|
|
+ } else {
|
|
|
|
+ c = new Connection(a);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Console.WriteLine("Created new " + (durable ? "" : "non-") + "durable subscriber" + (durable ? " with ID " + cid : ""));
|
|
|
|
+
|
|
|
|
+ Session s = new Session(c);
|
|
|
|
+
|
|
|
|
+ ReceiverLink rl;
|
|
|
|
+
|
|
|
|
+ if (durable) {
|
|
|
|
+ Source src = new Source() {
|
|
|
|
+ Address = addr,
|
|
|
|
+ Durable = 2,
|
|
|
|
+ ExpiryPolicy = new Symbol("never"),
|
|
|
|
+ };
|
|
|
|
+ rl = new ReceiverLink(s, "receiver", src, null);
|
|
|
|
+ } else {
|
|
|
|
+ rl = new ReceiverLink(s, "receiver", addr);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Console.WriteLine("Receiving random metrics from " + url + "/" + addr);
|
|
|
|
+ while (true) {
|
|
|
|
+ Message m = rl.Receive();
|
|
|
|
+ rl.Accept(m);
|
|
|
|
+ if (m != null) {
|
|
|
|
+ Console.WriteLine("Got: " + m.Body.ToString());
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ System.Threading.Thread.Sleep(1000);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|