private void btnMsgDelivery_Click(object sender, EventArgs e) { if (!EntryCheck()) { return; } var message = new MessageModel(); message.MsgID = Guid.NewGuid().ToString(); message.MsgRecOrder = this.txtRecOrder.Text; message.MsgCreateUser = this.txtCreateUser.Text; message.MsgCreateDateTime = DateTime.Now.ToShortTimeString(); message.MsgSloveDept = this.cmbDeliveryDept.Text; message.MsgSloveUser = this.cmbDeliveryUser.Text; message.MsgContent = this.txtMsgContent.Text; try { string exchangeName = ""; string routingKey = ""; EnumTransferType t = EnumTransferType.All; if (rdbAll.Checked) { exchangeName = "All"; routingKey = ""; t = EnumTransferType.All; } if (rdbDept.Checked) { exchangeName = "Dept"; routingKey = cmbDeliveryDept.Text.Remove(4, 1); t = EnumTransferType.Dept; } if (rdbUser.Checked) { exchangeName = ""; routingKey = cmbDeliveryUser.Text; t = EnumTransferType.User; } RadioButton prority = pnlPrority.Controls.OfType <RadioButton>().SingleOrDefault(radio => radio.Checked == true); message.Priority = int.Parse(prority.Text); Productor.SentMessage(t, exchangeName, routingKey, message); } catch (Exception ex) { Debug.WriteLine("メッセージ発送失敗:{0}", ex.Message); } }
public static void SentMessage(EnumTransferType type, string exchangeName, string routingKey, MessageModel msg) { var factory = new ConnectionFactory(); //サーバー名 factory.HostName = "godpubtest"; //RabbitServerのユーザー名 factory.UserName = "******"; //RabbitServerのパスワード factory.Password = "******"; try { using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { var body = SerializeTool.GetArray(msg); var properties = channel.CreateBasicProperties(); properties.Persistent = true; properties.Priority = Convert.ToByte(msg.Priority); switch (type) { case EnumTransferType.All: channel.ExchangeDeclare(exchange: exchangeName, type: "fanout", durable: true); //------Persistent---------------------------------- channel.BasicPublish( exchange: exchangeName, routingKey: routingKey, basicProperties: properties, body: body); break; case EnumTransferType.Dept: channel.ExchangeDeclare(exchange: exchangeName, type: "topic", durable: true); //------Persistent---------------------------------- channel.BasicPublish( exchange: exchangeName, routingKey: routingKey, basicProperties: properties, body: body); break; default: //------Persistent---------------------------------- channel.BasicPublish( exchange: "", routingKey: routingKey, basicProperties: properties, body: body); break; } Debug.WriteLine(" set {0}", msg.MsgID); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }