Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }