// MMI echo query example public static void MMIEcho(string[] args) { bool verbose = (args.Any(e => e.ToLower().Equals("-v") || e.ToLower().Equals("--verbose"))); Console.WriteLine("Verbose: {0}", verbose); CancellationTokenSource cancellor = new CancellationTokenSource(); Console.CancelKeyPress += (s, ea) => { ea.Cancel = true; cancellor.Cancel(); }; using (MajordomoClient session = new MajordomoClient("tcp://localhost:5555", verbose)) { ZMessage request = new ZMessage(); request.Add(new ZFrame("echo")); ZMessage reply = session.Send("mmi.service", request, cancellor); if (reply != null) { var replycode = reply[0].ToString(); "Loopup echo service: {0}\n".DumpString(replycode); reply.Dispose(); } else "E: no response from broker, make sure it's running\n".DumpString(); } }
// Majordomo Protocol client example // Uses the mdcli API to hide all MDP aspects public static void MDClient(string[] args) { bool verbose = (args.Any(e => e.ToLower().Equals("-v") || e.ToLower().Equals("--verbose"))); Console.WriteLine("Verbose: {0}", verbose); CancellationTokenSource cts = new CancellationTokenSource(); Console.CancelKeyPress += (s, ea) => { ea.Cancel = true; cts.Cancel(); }; using (MajordomoClient session = new MajordomoClient("tcp://127.0.0.1:5555", verbose)) { int count; for (count = 0; count < 100000; count++) { ZMessage request = new ZMessage(); request.Prepend(new ZFrame("Hello world")); using (ZMessage reply = session.Send("echo", request, cts)) if (reply == null) break; // Interrupt or failure } Console.WriteLine("{0} requests/replies processed\n", count); } }
// MMI echo query example public static void MMIEcho(string[] args) { CancellationTokenSource cancellor = new CancellationTokenSource(); Console.CancelKeyPress += (s, ea) => { ea.Cancel = true; cancellor.Cancel(); }; using (MajordomoClient session = new MajordomoClient("tcp://127.0.0.1:5555", Verbose)) { ZMessage request = new ZMessage(); request.Add(new ZFrame("echo")); ZMessage reply = session.Send("mmi.service", request, cancellor); if (reply != null) { var replycode = reply[0].ToString(); "Loopup echo service: {0}\n".DumpString(replycode); reply.Dispose(); } else "E: no response from broker, make sure it's running\n".DumpString(); } }
// Calls a TSP service // Returns response if successful (status code 200 OK), else NULL static ZMessage TIClient_ServiceCall(MajordomoClient session, string service, ZMessage request, CancellationTokenSource cts) { using (var reply = session.Send(service, request, cts)) { if (reply != null) { var status = reply.PopString(); if (status.Equals("200")) { return reply.Duplicate(); } else if (status.Equals("400")) { "E: client fatal error, aborting".DumpString(); cts.Cancel(); } else if (status.Equals("500")) { "E: server fatal error, aborting".DumpString(); cts.Cancel(); } } else { cts.Cancel(); // Interrupted or failed } } return null; }