예제 #1
0
파일: mmiecho.cs 프로젝트: ray-zong/zguide
        //  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();
            }
        }
예제 #2
0
파일: mdclient.cs 프로젝트: ray-zong/zguide
		//  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);
			}
		}
예제 #3
0
파일: mmiecho.cs 프로젝트: potatogim/zguide
        //  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();
            }
        }
예제 #4
0
파일: ticlient.cs 프로젝트: K0n63n/zguide
 //  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;
 }