public static async void ReceiveMsg(IEventAggregator aggregator) { eventAggregator = aggregator; MQHelper.ConnectionString = ConfigurationManager.ConnectionStrings["RabbitMQ"].ConnectionString; _mqHelper = new MQHelper(); _mqHelper.ClientSubscriptionId = ConfigurationManager.ConnectionStrings["ClientName"].ConnectionString + "-" + ConfigurationManager.ConnectionStrings["User"].ConnectionString; _mqHelper.MessageArrived += RabbitMQ_MessageArrived; _mqHelper.Topics.Add("DSIM.Command.Update"); _mqHelper.Topics.Add("DSIM.Command.Approve"); _mqHelper.Topics.Add("DSIM.Command.Transmit"); _mqHelper.Topics.Add("DSIM.Command.Sign"); _mqHelper.Topics.Add("DSIM.Command.AgentSign"); _mqHelper.Topics.Add("DSIM.Command.Check"); _mqHelper.Topics.Add("DSIM.Command.SpeedCache"); _mqHelper.Topics.Add("DSIM.Command.Active"); _mqHelper.Topics.Add("DSIM.Command.Execute"); _mqHelper.Subcribe(); // 以下为测试代码 //try //{ // ConnectionFactory factory = new ConnectionFactory { HostName = "39.108.177.237", Port = 5672, UserName = "******", Password = "******" }; // using (IConnection conn = factory.CreateConnection()) // { // using (IModel im = conn.CreateModel()) // { // List<string> allTopic = new List<string>() // { // "DSIM.Command.Update", // "DSIM.Command.Approve", // "DSIM.Command.Transmit", // "DSIM.Command.Sign", // "DSIM.Command.AgentSign", // "DSIM.Command.Check", // "DSIM.Command.SpeedCache", // "DSIM.Command.Active", // "DSIM.Command.Execute",}; // var queue = ConfigurationManager.ConnectionStrings["User"].ConnectionString; // im.ExchangeDeclare("amq.topic", ExchangeType.Topic, durable: true); // im.QueueDeclare(queue); // foreach (var item in allTopic) // { // im.QueueBind(queue, "amq.topic", item); // } // await Task.Run(() => // { // while (true) // { // BasicGetResult res = im.BasicGet(queue, true); // if (res != null) // { // var json = Encoding.UTF8.GetString(res.Body); // var split = json.LastIndexOf("/"); // var suffix = json.Substring(split + 1); // var content = json.Substring(0, split); // switch (suffix) // { // case ("DSIM.Command.Update"): // var data1 = JsonConvert.DeserializeObject<YDMSG.MsgDispatchCommand>(content); // eventAggregator.GetEvent<CacheCommand>().Publish(data1); // break; // case ("DSIM.Command.Approve"): // var data2 = JsonConvert.DeserializeObject<YDMSG.MsgDispatchCommand>(content); // eventAggregator.GetEvent<ApproveCommand>().Publish(data2); // break; // case ("DSIM.Command.Transmit"): // var data3 = JsonConvert.DeserializeObject<YDMSG.MsgDispatchCommand>(content); // eventAggregator.GetEvent<TransmitCommand>().Publish(data3); // break; // case ("DSIM.Command.Sign"): // var data4 = JsonConvert.DeserializeObject<YDMSG.MsgCommandSign>(content); // eventAggregator.GetEvent<SignCommand>().Publish(data4); // break; // case ("DSIM.Command.AgentSign"): // var data5 = JsonConvert.DeserializeObject<YDMSG.MsgCommandSign>(content); // eventAggregator.GetEvent<AgentSignCommand>().Publish(data5); // break; // case ("DSIM.Command.Check"): // var data6 = JsonConvert.DeserializeObject<YDMSG.MsgSpeedCommand>(content); // eventAggregator.GetEvent<CheckSpeedCommand>().Publish(data6); // break; // case ("DSIM.Command.SpeedCache"): // var data7 = JsonConvert.DeserializeObject<YDMSG.MsgSpeedCommand>(content); // eventAggregator.GetEvent<CacheSpeedCommand>().Publish(data7); // break; // case ("DSIM.Command.Active"): // var data8 = JsonConvert.DeserializeObject<YDMSG.MsgSpeedCommand>(content); // eventAggregator.GetEvent<ActiveSpeedCommand>().Publish(data8); // break; // case ("DSIM.Command.Execute"): // var data9 = JsonConvert.DeserializeObject<YDMSG.MsgSpeedCommand>(content); // eventAggregator.GetEvent<ExecuteSpeedCommand>().Publish(data9); // break; // default: // break; // } // } // } // }); // } // } //} //catch (Exception except) //{ // MessageBox.Show(except.Message); //} }