Esempio n. 1
0
 /// <summary>
 /// Fount Exchange Test object
 /// </summary>
 public static void Fanout_Test_String()
 {
     MQHelperFactory.Default().FanoutConsume <string>((mqStr) =>
     {
         Console.WriteLine($"[fanout-string]=> {mqStr}");
     });
 }
Esempio n. 2
0
        public static void Consume()
        {
            //MQHelperFactory.Default().FanoutConsume<string>((message) =>
            //{
            //    Console.WriteLine($"已接收 => {message}");
            //});

            //MQHelperFactory.Default().DirectConsume<string>((str) => {
            //    Console.WriteLine(str);
            //});

            //MQHelperFactory.Default().DirectReceive<string>("default", (str) =>
            //{
            //    Console.WriteLine(str);
            //});

            //MQHelperFactory.Default().TopicSubscribe<string>("defaultId", (str) =>
            //{
            //    Console.WriteLine(str);
            //}, "*.rabbit");

            MQHelperFactory.Default().TopicConsume <string>((str) =>
            {
                Console.WriteLine(str);
            });
        }
Esempio n. 3
0
 /// <summary>
 /// Fount Exchange Test string
 /// </summary>
 public static void Fanout_Test_Obj()
 {
     MQHelperFactory.Default().FanoutConsume <MSObject>((mqObj) =>
     {
         Console.WriteLine($"[fanout-object]=> Name={mqObj.Name},Age={mqObj.Age},AddTime={mqObj.CreateTime.ToString()}");
     });
 }
Esempio n. 4
0
 public static void Topic_Test_String()
 {
     MQHelperFactory.Default().TopicSubscribe <string>("MyTopic", (info) =>
     {
         Console.WriteLine($"[topic-string]=> {info}");
     }, "A.*", "B.*", "C.*");
 }
Esempio n. 5
0
 public static void Topic_Test_Obj()
 {
     MQHelperFactory.Default().TopicSubscribe <MSObject>("MyTopic", (mqObj) =>
     {
         Console.WriteLine($"[topic-object]=> Name={mqObj.Name},Age={mqObj.Age},AddTime={mqObj.CreateTime.ToString()}");
     }, "A.*", "B.*", "C.*");
 }
Esempio n. 6
0
 public static void Topic_Consume_String()
 {
     MQHelperFactory.Default().TopicConsume <string>((mqStr) =>
     {
         Console.WriteLine($"[topic-consume-string]=> {mqStr}");
     }, topics: new string[] { "A.*", "B.*", "X.*" });
 }
Esempio n. 7
0
 public void Process()
 {
     //拉取fanout_queue_Mail队列的消息,并绑定到fanout_Mail交换机,routingkey为mail
     MQHelperFactory.Default().FanoutConsume(item =>
     {
         var mail = JsonConvert.DeserializeObject <MyMail>(item.Item2);
         MailHelper.SendMail(mail);
     }, "fanout_Mail", "fanout_queue_Mail", "mail", maxPriority: 100);
 }
        public void InitMessageRegister()
        {
            string   strRabbitMQconfig = _dbOption.RabbitMQconfig;
            MQHelper tMQHelper         = MQHelperFactory.CreateBus(strRabbitMQconfig);

            #region 模拟第三方消息发送
            //Task.Factory.StartNew(() =>
            //{
            //    while (true)
            //    {
            //        chatHub.Clients.All.SendAsync("Notify", $" {DateTime.Now}:->{new Random().Next(1, 10000)}");
            //        Task.Delay(5000);
            //    }
            //});
            int    i           = 0;
            string strErrorMsg = "";
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    i++;
                    var bodyMsg = new SystemMessage()
                    {
                        Content  = $"定时第{i}条信息",
                        DateTime = DateTime.Now.ToString(),
                        Title    = "四方博瑞安防平台信息",
                        Type     = "log".ObjectToJSON()
                    };
                    var message = new RabbitMQMsg {
                        Body = bodyMsg.ObjectToJSON(), Category = CategoryMessage.System, Dst = "预留字段", SendTime = DateTime.Now.ToString(), Src = "消息来源"
                    };

                    tMQHelper.TopicPublish(message.Category.ToString() + ".xA", message, ref strErrorMsg);
                    Task.Delay(5000);
                }
                ;
            });
            #endregion

            #region 通过signar发送到客户端
            tMQHelper.TopicSubscribe(Guid.NewGuid().ToString(), s =>
            {
                Console.WriteLine("当前收到信息:" + s.Body.FromJson <SystemMessage>().Content);


                foreach (var connection in ChatHub.UserList)
                {
                    if (_chatHub != null && connection.Key != null)
                    {
                        _chatHub.Clients.Client(connection.Key).SendAsync("Recv", "当前收到信息:" + s.Body.FromJson <SystemMessage>().Content);
                    }
                }
                // chatHub.Clients.All.SendAsync("Notify", $" {DateTime.Now}:->{new Random().Next(1, 10000)}");
            }, true, CategoryMessage.System.ToString() + ".*", CategoryMessage.Alarm.ToString() + ".*");
            #endregion
        }
Esempio n. 9
0
 /// <summary>
 /// Direct 消息上报=>字符串
 /// </summary>
 /// <returns></returns>
 public ActionResult Direct_Test_String()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         MQHelperFactory.Default().DirectSend("direct_mq", $"我只是个Test_{time}_{i}");
     }
     return(Content("Bingo!"));
 }
Esempio n. 10
0
        /// <summary>
        /// Direct Exchange Test object
        /// </summary>
        public static void Direct_Consume_Test_Obj()
        {
            var msg = string.Empty;

            MQHelperFactory.Default().DirectConsume <MSObject>((mqObj) => {
                Console.WriteLine($"[direct-consume-object]=> Name={mqObj.Name},Age={mqObj.Age},AddTime={mqObj.AddTime.ToString()}");
            }, out msg);
            if (!string.IsNullOrWhiteSpace(msg))
            {
                Console.WriteLine(msg);
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Direct Exchange Test string
        /// </summary>
        public static void Direct_Receive_Test_String()
        {
            var msg  = string.Empty;
            var isSc = MQHelperFactory.Default().DirectReceive <string>("direct_mq", (str) => {
                Console.WriteLine($"[direct-string]=> {str}");
            }, out msg);

            if (!string.IsNullOrWhiteSpace(msg))
            {
                Console.WriteLine(msg);
            }
        }
Esempio n. 12
0
 /// <summary>
 /// Fanout 消息上报=>对象
 /// </summary>
 /// <returns></returns>
 public ActionResult Fanout_Test_Obj2()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         MQHelperFactory.Default().FanoutPush(new TestMessage
         {
             Name = $"我只是个Test_{time}_{i}",
         });
     }
     return(Content("Bingo!"));
 }
Esempio n. 13
0
        /// <summary>
        /// Direct Exchange Test object
        /// </summary>
        public static void Direct_Receive_Test_Obj()
        {
            var msg  = string.Empty;
            var isSc = MQHelperFactory.Default().DirectReceive <MSObject>("direct_mq", (mqObj) =>
            {
                Console.WriteLine($"[direct-object]=> Name={mqObj.Name},Age={mqObj.Age},AddTime={mqObj.CreateTime.ToString()}");
            }, out msg);

            if (!string.IsNullOrWhiteSpace(msg))
            {
                Console.WriteLine(msg);
            }
        }
Esempio n. 14
0
 /// <summary>
 /// Direct 消息上报=>Object
 /// </summary>
 /// <returns></returns>
 public ActionResult Direct_Push_Test_Obj()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         MQHelperFactory.Default().DirectPush <MSObject>(new MSObject
         {
             Name = $"我只是个Test_{time}_{i}",
             Age  = i,
         }, out msg);
     }
     return(Content("Bingo!"));
 }
Esempio n. 15
0
 /// <summary>
 ///  Topic 消息上报=>string
 /// </summary>
 /// <returns></returns>
 public ActionResult Topic_Sub_Test_String()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         var isSc = MQHelperFactory.Default().TopicSub <string>($"我只是个Test_{time}_{i}", "A.666", out msg);
         if (!isSc)
         {
             return(Content($"报错了:{msg}"));
         }
     }
     return(Content("Bingo!"));
 }
Esempio n. 16
0
 /// <summary>
 /// Fanout 消息上报=>字符串
 /// </summary>
 /// <returns></returns>
 private ActionResult Fanout_Test_String()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         var isSc = MQHelperFactory.Default().FanoutPush <string>($"我只是个Test_{time}_{i}", out msg);
         if (!isSc)
         {
             return(Content($"报错了:{msg}"));
         }
     }
     return(Content("Bingo!"));
 }
Esempio n. 17
0
 static void Main(string[] args)
 {
     Parallel.For(0, 50, i =>
     {
         //发送优先级邮件到fanout_Mail交换机,routingkey为mail
         MQHelperFactory.Default().FanoutPush <MyMail>(new MyMail
         {
             Receiver = new List <string>()
             {
                 "*****@*****.**"
             },
             Body    = i + "Body",
             Subject = "Test"
         }, out string msg, "fanout_Mail", "mail", priority: i); //设置优先级});
     });
Esempio n. 18
0
        public static void Publish()
        {
            //MQHelperFactory.Default().FanoutPublish("这是一条新消息");
            //Console.WriteLine("这是一条新消息");
            //Thread.Sleep(10 * 1000);
            //MQHelperFactory.Default().FanoutPublish("这是二条新消息");
            //Console.WriteLine("这是二条新消息");

            //MQHelperFactory.Default().DirectPublish(DateTime.Now.ToLongDateString());

            //MQHelperFactory.Default().DirectSend("default", DateTime.Now.ToLongDateString());

            //MQHelperFactory.Default().TopicPublish("defaultTopic", DateTime.Now.ToLongDateString());

            MQHelperFactory.Default().TopicPublish("defaultTopic", DateTime.Now.ToLongDateString(), exChangeName: "topic_exchange_default");
        }
Esempio n. 19
0
        public static void Main(string[] args)
        {
            string input       = "";
            string strErrorMsg = "";

            Console.WriteLine("请输入你要选择的发送端和接收端==1为发,2为收");
            string type    = Console.ReadLine();
            string connStr = System.Configuration.ConfigurationManager.AppSettings["connStr"] ?? "host=192.168.137.112:5672;virtualHost=/;username=lxsh;password=123456";

            Console.WriteLine(connStr);
            MQHelper tMQHelper = MQHelperFactory.CreateBus(connStr);

            if (type == "1")
            {
                Console.WriteLine("================================开始发送消息================================");
                Console.WriteLine("Please enter a message. 'Quit' to quit.");
                int i = 0;

                //while ((input = Console.ReadLine()) != "Quit")
                while (true)
                {
                    Thread.Sleep(1000);
                    i++;
                    var bodyMsg = new SystemMessage()
                    {
                        // Content = $"第{i}条信息:{ input}",
                        Content  = $"定时第{i}条信息",
                        DateTime = DateTime.Now.ToString(),
                        Title    = "四方博瑞安防平台信息",
                        Type     = "log".ToJson()
                    };
                    var message = new RabbitMQMsg {
                        Body = bodyMsg.ToJson(), EventCategory = CategoryMessage.System, EventDst = "预留字段", EventSendTime = DateTime.Now.ToString(), SourceName = "消息来源"
                    };

                    tMQHelper.TopicPublish(message.EventCategory.ToString() + ".xA", message, ref strErrorMsg);

                    Console.WriteLine(message.Body);
                    Console.WriteLine("================================发送消息完成================================");
                }
            }
            else
            {
                tMQHelper.TopicSubscribe(Guid.NewGuid().ToString(), s => Console.WriteLine("当前收到信息:" + s.Body.FromJson <SystemMessage>().Content), true, CategoryMessage.System.ToString() + ".*", CategoryMessage.Alarm.ToString() + ".*");
                Console.WriteLine("Please enter a message. 'Quit' to quit.");
            }
        }
Esempio n. 20
0
 /// <summary>
 /// Topic 消息上报=>Object
 /// </summary>
 /// <returns></returns>
 public ActionResult Topic_Test_Obj()
 {
     for (int i = 0; i < 10; i++)
     {
         var time = DateTime.Now.ToString("HHmmss");
         var msg  = string.Empty;
         var isSc = MQHelperFactory.Default().TopicPublish <MSObject>("A.666", new MSObject {
             Name = $"我只是个Test_{time}_{i}",
             Age  = i,
         }, out msg);
         if (!isSc)
         {
             return(Content($"报错了:{msg}"));
         }
     }
     return(Content("Bingo!"));
 }
Esempio n. 21
0
        static void RabbitMsgTest()
        {
            MQHelper tMQHelper = MQHelperFactory.CreateBus("host=127.0.0.1:5672;virtualHost=/;username=lxsh;password=123456");

            tMQHelper.TopicSubscribe(Guid.NewGuid().ToString(), s =>
            {
                Console.WriteLine("当前收到信息:" + s.Body.FromJson <SystemMessage>().Content);

                var hub = GlobalHost.ConnectionManager.GetHubContext <MyConnection>();
                foreach (var connectionID in MyConnection.list)
                {
                    if (hub != null && connectionID != null)
                    {
                        hub.Clients.Client(connectionID)
                        .notice("当前收到信息:" + s.Body.FromJson <SystemMessage>().Content);
                    }
                }
            }, true, CategoryMessage.System.ToString() + ".*", CategoryMessage.Alarm.ToString() + ".*");

            Console.WriteLine("Please enter a message. 'Quit' to quit.");
        }
Esempio n. 22
0
        static void Main(string[] args)
        {
            var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");

            LogManager.GetLogger(typeof(Program)).Info("sdfsd");
            XmlConfigurator.ConfigureAndWatch(logCfg);
            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

            MQHelperFactory.Default().FanoutConsume(Hanlder());

            HostFactory.Run(x =>
            {
                x.Service <TownCrier>(s =>
                {
                    s.ConstructUsing(name => new TownCrier());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();

                x.SetDescription("Sample Topshelf Host服务的描述");
                x.SetDisplayName("Stuff显示名称");
                x.SetServiceName("Stuff服务名称");
            });
            ////开头文
            //var styleSheet = new Colorful.StyleSheet(Color.LightGoldenrodYellow);
            //styleSheet.AddStyle("SFLYQ", Color.Yellow);
            //Colorful.Console.WriteLineStyled("rabbitmq test demo from author SFLYQ", styleSheet);
            //Console.WriteLine();
            //Colorful.Console.WriteLineStyled("命令列表:", new Colorful.StyleSheet(Color.PeachPuff));
            //Console.WriteLine();

            ////表格
            //var table = new ConsoleTable("cmd", "exchange model", "type", "advanced", "report http api");
            //table.AddRow("fanout-string", "fanout", "string", "no", "/home/fanout/?handle=string")
            //     .AddRow("fanout-obj", "fanout", "object", "no", "/home/fanout/?handle=obj")
            //     .AddRow("direct-string", "direct", "string", "no", "/home/direct/?handle=push-string")
            //     .AddRow("direct-obj", "direct", "object", "no", "/home/direct/?handle=obj")
            //     .AddRow("direct-consume-string", "direct", "string", "yes", "/home/direct/?handle=string")
            //     .AddRow("topic-string", "topic", "string", "no", "/home/topic/?handle=string")
            //     .AddRow("topic-obj", "topic", "object", "no", "/home/topic/?handle=obj")
            //     .AddRow("topic-consume-string", "topic", "string", "yes", "/home/topic/?handle=sub-string")
            //     .AddRow("fanout-obj2", "fanout", "object", "no", "/home/fanout/?handle=obj");
            //table.Write(Format.MarkDown);

            ////提示
            //Console.WriteLine();
            //Console.WriteLine("输入操作命令:");
            //Console.WriteLine();

            ////接收命令 Test
            //while (true)
            //{
            //    var cmd = Console.ReadLine();
            //    try
            //    {
            //        switch (cmd)
            //        {
            //            //Fanout Exchange 消息接收测试
            //            case "fanout-string": Fanout_Test_String(); break;
            //            case "fanout-obj": Fanout_Test_Obj(); break;
            //            //Direct Exchange 消息接收测试
            //            case "direct-string": Direct_Receive_Test_String(); break;
            //            case "direct-obj": Direct_Receive_Test_Obj(); break;
            //            case "direct-consume-obj": Direct_Consume_Test_Obj(); break;
            //            //Topic Exchange 消息接收测试
            //            case "topic-string": Topic_Test_String(); break;
            //            case "topic-obj": Topic_Test_String(); break;
            //            case "topic-consume-string": Topic_Consume_String(); break;
            //            case "fanout-obj2": MQHelperFactory.Default().FanoutConsume<TestMessage>(o => Console.WriteLine(o.Name)); break;
            //            default: Console.WriteLine($"what ?  "); continue;
            //        }
            //        Console.WriteLine($"{cmd},start testing ... ... ");
            //        Console.WriteLine();
            //        Console.WriteLine("可以继续输入:");
            //        Console.WriteLine();
            //    }
            //    catch (Exception ex)
            //    {
            //        Console.WriteLine($"{cmd},err:{ex.ToString()} ");
            //    }
            //}
        }