/// <summary> /// Fount Exchange Test object /// </summary> public static void Fanout_Test_String() { MQHelperFactory.Default().FanoutConsume <string>((mqStr) => { Console.WriteLine($"[fanout-string]=> {mqStr}"); }); }
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); }); }
/// <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()}"); }); }
public static void Topic_Test_String() { MQHelperFactory.Default().TopicSubscribe <string>("MyTopic", (info) => { Console.WriteLine($"[topic-string]=> {info}"); }, "A.*", "B.*", "C.*"); }
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.*"); }
public static void Topic_Consume_String() { MQHelperFactory.Default().TopicConsume <string>((mqStr) => { Console.WriteLine($"[topic-consume-string]=> {mqStr}"); }, topics: new string[] { "A.*", "B.*", "X.*" }); }
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 }
/// <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!")); }
/// <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); } }
/// <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); } }
/// <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!")); }
/// <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); } }
/// <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!")); }
/// <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!")); }
/// <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!")); }
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); //设置优先级}); });
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"); }
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."); } }
/// <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!")); }
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."); }
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()} "); // } //} }