Example #1
0
        static void Main(string[] args)
        {
            //Send send = new Send();
            //send.Start();

            //Receive rec = new Receive();
            //rec.Start();

            //NewTask task = new NewTask();
            //task.Start();

            //Worker worker = new Worker();
            //worker.Start();

            EmitLogTopic.Start(args);

            ReceiveLogsTopic.Start(args);
        }
        static void Main(string[] args)
        {
            string option = string.Empty;

            while (!option.Equals("0"))
            {
                Console.Clear();
                Console.WriteLine("RABBIT MQ");
                Console.WriteLine("\n");

                Console.WriteLine("Menú Principal");
                Console.WriteLine();

                Console.WriteLine("1. Envío básico.");
                Console.WriteLine("2. Recepción básica.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("3. Envío de mensajes a dos o más colas.");
                Console.WriteLine("4. Recepción de mensajes desde dos o más colas de trabajo.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("5. Envío de un mensaje a un intercambiador y no directamente a una cola (Transmite mensajes a todos los consumidores).");
                Console.WriteLine("6. Recepción de mensajes desde una o cualquier cola enlazada con el intercambiador especificado.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("7. Envío de un mensaje con clave de enrutamiento. (Filtrar mensajes de acuerdo a su gravedad).");
                Console.WriteLine("8. Recepción de mensajes desde una cola enlazada con la clave de enrutamiento.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("9. Envío de un mensaje con clave de enrutamiento. (Filtrar mensajes de acuerdo a su gravedad).");
                Console.WriteLine("101 - 102 - 103 - 104. Recepción de mensajes desde una colas enlazada con la clave de enrutamiento.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("11. Enviando solicitud y esperar como respuesta la serie de fibonacci del número 30.");
                Console.WriteLine("12. Servidor esperando solicitudes para responder la serie de fibonacci solicitada.");
                Console.WriteLine("----------------------------------------------------------------------------------------------------------------------");

                Console.WriteLine("0. Salir del Programa.");

                option = Console.ReadLine();

                switch (option)
                {
                case "1":
                    BasicCommunication.Send();
                    break;

                case "2":
                    BasicCommunication.Receive();
                    break;

                case "3":
                    NewTask.Send(new string[] { "Primer mensaje que emula procesar durante 1 segundo." });
                    NewTask.Send(new string[] { "Segundo mensaje que emula procesar durante 2 segundos.." });
                    NewTask.Send(new string[] { "Tercer mensaje que emula procesar durante 1 segundo." });
                    break;

                case "4":
                    Worker.Receive();
                    break;

                case "5":
                    EmitLogFanout.Send(new string[] { "Enviando un mensaje al intercambiador, ahora no se envía directamente a la cola. " });
                    break;

                case "6":
                    ReceiveLogsFanout.Receive();
                    break;

                case "7":
                    EmitLogDirect.Send(new string[] { "info", "Mensaje de información." });
                    EmitLogDirect.Send(new string[] { "warning", "Mensaje de advertencia." });
                    EmitLogDirect.Send(new string[] { "error", "Mensaje de error." });
                    EmitLogDirect.Send(new string[] { "personalizado", "Mensaje de clasificación personalizado." });
                    break;

                case "8":
                    ReceiveLogsDirect.Receive(new string[] { "warning", "error", "personalizado" });
                    break;

                case "9":
                    EmitLogTopic.Send(new string[] { "kern.critical", "un mensaje error crítico del kernel." });
                    EmitLogTopic.Send(new string[] { "kern.*", "Mensaje general del kernel." });
                    EmitLogTopic.Send(new string[] { "*.critital", "Mensaje crítico sin importar de quien sea." });
                    break;

                case "101":
                    ReceiveLogsTopic.Receive(new string[] { "#" });
                    break;

                case "102":
                    ReceiveLogsTopic.Receive(new string[] { "kern.*" });
                    break;

                case "103":
                    ReceiveLogsTopic.Receive(new string[] { "*.critical" });
                    break;

                case "104":
                    ReceiveLogsTopic.Receive(new string[] { "kern.*", "*.critical" });
                    break;

                case "11":
                    RPCClient rpcClient = new RPCClient();
                    Console.WriteLine(" [x] Solicitando fib(30)...");
                    var response = rpcClient.Call("30");
                    Console.WriteLine(" [.] Recibido {0}", response);
                    Console.ReadLine();
                    rpcClient.Close();
                    break;

                case "12":
                    RPCServer rpcServer = new RPCServer();
                    rpcServer.Server();
                    break;

                default:
                    break;
                }
            }
        }