Beispiel #1
0
 private static void Message_Listener(IMessage message)
 {
     try
     {
         Console.WriteLine("Add Message");
         IObjectMessage objectMessage = message as IObjectMessage;
         if (objectMessage.Body != null)
         {
             var sms = (string)objectMessage.Body;
             if (!String.IsNullOrEmpty(sms))
             {
                 Console.WriteLine(string.Format("Message = {0}", sms));
                 new Client(sms);
                 StreamWriter sw = new StreamWriter("out.txt", true);
                 sw.WriteLine("Message==={0}==={1}", DateTime.Now.ToString(), sms);
                 sw.Close();
             }
             Thread.Sleep(5000);
         }
     }
     catch (Exception e)
     {
         StreamWriter sw = new StreamWriter("error.txt", true);
         sw.WriteLine("Error==={0}==={1}", DateTime.Now.ToString(), e.ToString());
         sw.Close();
     }
 }
Beispiel #2
0
        static bool SubscribeJsonMessage()
        {
            string queueName = "JsonQueue";

            string             brokerUri = $"activemq:tcp://localhost:61616";
            IConnectionFactory factory   = new ConnectionFactory(brokerUri);

            using (IConnection connection = factory.CreateConnection())
            {
                connection.Start();
                using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
                    using (IDestination dest = session.GetQueue(queueName))
                        using (IMessageConsumer consumer = session.CreateConsumer(dest))
                        {
                            IMessage       msg     = consumer.Receive();
                            IObjectMessage jsonMsg = msg as IObjectMessage;
                            if (jsonMsg != null)
                            {
                                var user = jsonMsg.Body as User;
                                var body = jsonMsg.Body.ToString();
                                Console.WriteLine($"Received message: {body}");
                                return(true);
                            }
                        }
            }

            return(false);
        }
Beispiel #3
0
        private void Message_Listener(IMessage mes)
        {
            IObjectMessage objmes = mes as IObjectMessage;
            Class1         ope    = ((BusinessObject.Class1)(objmes.Body));

            MessageBox.Show(ope.Shortcode);
        }
Beispiel #4
0
        public static void MainPerClient(object parameter)
        {
            int clientId = (int)parameter;

            Console.WriteLine($"[{clientId}] client started");

            IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616");

            ((ConnectionFactory)factory).PrefetchPolicy.SetAll(0);

            using IConnection connection = factory.CreateConnection();
            connection.Start();

            using ISession session         = connection.CreateSession();
            using IDestination destination = session.GetQueue("KAW.MD5Hasher");

            using IMessageConsumer consumer = session.CreateConsumer(destination);

            IMessage message;

            using (MD5 md5Hash = MD5.Create())
            {
                while ((message = consumer.Receive(TimeSpan.FromSeconds(10))) != null)
                {
                    IObjectMessage objectMessage = message as IObjectMessage;
                    HFMessage      hfMessage     = objectMessage.Body as HFMessage;
                    Console.WriteLine($"[{clientId}] message recv (start: {hfMessage.Start} - end: {hfMessage.End})");

                    // Extracted the Logic Part of the Application so that it's testable
                    Console.WriteLine(TryHackMessage(hfMessage, md5Hash, clientId));
                }
            }
        }
Beispiel #5
0
 public void esperarMensaje()
 {
     while (true)
     {
         IMessage m = _consumer.Receive();
         if (m is ITextMessage)
         {
             ITextMessage text = m as ITextMessage;
             Console.WriteLine(text.Text);
         }
         else
         {
             IObjectMessage temp = m as IObjectMessage;
             if (temp != null)
             {
                 Console.WriteLine("Estoy aqui");
                 try
                 {
                     Mensaje m2 = temp.Body as Mensaje;
                     if (m2 != null)
                     {
                         Console.WriteLine("No es null");
                         Console.WriteLine(m2.descripcion);
                         Console.WriteLine(m2.cuerpo);
                     }
                 }
                 catch (SerializationException e)
                 {
                     Console.WriteLine("Failed to serialize. Reason: " + e.Message);
                     throw;
                 }
             }
         }
     }
 }
Beispiel #6
0
        private void MessageListener(IMapMessage message)
        {
            IObjectMessage  objectMessage   = message as IObjectMessage;
            RequesterObject requesterObject = ((SOA_Architecture.RequesterObject)(objectMessage.Body));

            MessageBox.Show(requesterObject.Requestproerty);
        }
Beispiel #7
0
        public void OnMessageCreateOrder(IMessage receivedMsg)
        {
            Exception exception = null;

            try
            {
                IObjectMessage message = receivedMsg as IObjectMessage;

                //Request Handle
                Ordenes request = message?.Body as Ordenes;


                //Save BD
                var response = _dbContext.Create(request);

                //Service SAP
                try
                {
                    _serviceSap.CreateOrderSap(response);
                }
                catch (Exception)
                {
                }


                // Wait for the message
                Semaphore.WaitOne((int)ReceiveTimeout.TotalMilliseconds, true);
                Semaphore.Set(); Thread.Sleep((int)ReceiveTimeout.TotalMilliseconds);
            }
            catch (Exception ex)
            {
                exception = ex;
            }
        }
        public void ToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage()
        {
            IObjectMessage message = A.Fake <IObjectMessage>();
            IMessage       msg     = converter.ToMessage(message, session);

            Assert.AreSame(message, msg);
        }
        private void OnMessage <IMessage>(IMessage t)
        {
            IObjectMessage msg          = t as IObjectMessage;
            var            eventMessage = new EventMessage(msg.Body);

            MessageReceived(eventMessage);
        }
Beispiel #10
0
        public object ReadNextObjectMessage(string destination)
        {
            NMSConnectionFactory factory = new NMSConnectionFactory(_brokerUri);

            using (IConnection connection = factory.CreateConnection())
            {
                connection.Start();
                using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
                    using (IDestination dest = session.GetQueue(destination))
                        using (IMessageConsumer consumer = session.CreateConsumer(dest))
                        {
                            IMessage msg = consumer.Receive();
                            if (msg is IObjectMessage)
                            {
                                IObjectMessage objMsg = msg as IObjectMessage;
                                var            body   = objMsg.Body;
                                //if (body == "PatientCreated")
                                //{

                                //}
                                //Console.WriteLine($"Received message: {txtMsg.Text}");

                                return(body);
                            }
                            else
                            {
                                //Console.WriteLine("Unexpected message type: " + msg.GetType().Name);
                                return("Unexpected message type: " + msg.GetType().Name);
                            }
                        }
            }
        }
        public void TestObjectMessageCompression()
        {
            using (Connection connection = CreateConnection(TEST_CLIENT_ID) as Connection)
            {
                connection.UseCompression = true;
                connection.Start();

                Assert.IsTrue(connection.UseCompression);

                using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
                {
                    IObjectMessage message = session.CreateObjectMessage(TEXT);

                    IDestination destination = session.CreateTemporaryQueue();

                    IMessageProducer producer = session.CreateProducer(destination);
                    IMessageConsumer consumer = session.CreateConsumer(destination);

                    producer.Send(message);

                    message = consumer.Receive(TimeSpan.FromMilliseconds(6000)) as IObjectMessage;

                    Assert.IsNotNull(message);
                    Assert.IsTrue(((ActiveMQMessage)message).Compressed);
                    Assert.AreEqual(TEXT, message.Body);
                }
            }
        }
        protected async void Message_ListenerStatus(IMessage receivedMsg)
        {
            IObjectMessage message = receivedMsg as IObjectMessage;
            var            msg     = message.Body as TransactionSetup;

            flag = true;

            if (msg.TransactionStatus == Status.Start)
            {
                var bill = new Bill();

                //Http client
                //var result = await _apiCall.Create(bill, Urls.BaseUrlBilling, Urls.UrlToCreateBill);
                //if (result.IsSuccessStatusCode)
                //{
                //    msg.TransactionStatus = Status.BilligSucces;

                //    await SendEvent(msg);
                //}
                //else
                //{
                //    msg.TransactionStatus = Status.Failed;

                //    await SendEvent(msg);

                //    await _apiCall.Delete(Urls.BaseUrlCreateAppointment, Urls.UrlToBaseAppointment, msg.AppoitmentId.ToString());
                //    flag = false;
                //}


                //gRPC client
                if (await CreateBill())
                {
                    msg.TransactionStatus = Status.BilligSucces;

                    await SendEvent(msg);
                }
                else
                {
                    msg.TransactionStatus = Status.Failed;

                    await SendEvent(msg);

                    await _apiCall.Delete(Urls.BaseUrlCreateAppointment, Urls.UrlToBaseAppointment, msg.AppoitmentId.ToString());

                    flag = false;
                }
            }

            if (msg.TransactionStatus == Status.BilligSucces)
            {
                msg.TransactionStatus = Status.SendEmail;
                if (_amqService.SendEvent(msg, SEND_EMAIL))
                {
                    msg.TransactionStatus = Status.Succes;
                    await UpdateLog(msg);
                }
            }
        }
Beispiel #13
0
        private void Consumer_Listener(IMessage message)
        {
            IObjectMessage objectMessage = message as IObjectMessage;
            BenhNhan       benhNhan      = ((BenhNhan)(objectMessage.Body));

            tbmsbn.Invoke(new Action(() => tbmsbn.Text     = benhNhan.Msbn));
            tbhoten.Invoke(new Action(() => tbhoten.Text   = benhNhan.Hoten));
            tbcmnd.Invoke(new Action(() => tbcmnd.Text     = benhNhan.Socmnd));
            tbdiachi.Invoke(new Action(() => tbdiachi.Text = benhNhan.Diachi));
        }
Beispiel #14
0
        public IObjectMessage ReciveEvent(string queueName)
        {
            IDestination     destinationStatus     = session.GetQueue(queueName);
            IMessageConsumer messageConsumerStatus = session.CreateConsumer(destinationStatus);
            var            resutl  = messageConsumerStatus.Receive();
            IObjectMessage message = resutl as IObjectMessage;

            return(message);
            //messageConsumerStatus.Listener += new MessageListener(Message_ListenerStatus<TEntity>);
        }
Beispiel #15
0
        void NoiDungNhan(IMessage mes)
        {
            IObjectMessage objRe = mes as IObjectMessage;

            //richTextBox1.Text += objRe.Body.ToString();
            //OperatorRequestObject ReObj = ((OperatorRequestOject.OperatorRequestObject)(objRe.Body));
            //string txt = "start  ";
            //   txt += ReObj.ShortCode + "\n";
            //richTextBox1.Text = txt;
            MessageBox.Show(objRe.Body.ToString());
        }
        public void ToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage()
        {
            IObjectMessage message = (IObjectMessage)mocks.CreateMock(typeof(IObjectMessage));

            mocks.ReplayAll();

            IMessage msg = converter.ToMessage(message, session);

            Assert.AreSame(message, msg);

            mocks.VerifyAll();
        }
Beispiel #17
0
 private void consumer2_Listener(IMessage message)
 {
     try
     {
         IObjectMessage msg = (IObjectMessage)message;
         if (this.InvokeRequired)
         {
             this.BeginInvoke(new ShowNoteMsgDelegate_New(ShowMessage2), (Dictionary <string, string>)msg.Body);
         }
     }
     catch { }
 }
Beispiel #18
0
        public void ToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage()
        {
            IObjectMessage message = mocks.StrictMock <IObjectMessage>();

            mocks.ReplayAll();

            IMessage msg = converter.ToMessage(message, session);

            Assert.AreSame(message, msg);

            mocks.VerifyAll();
        }
        public void Serializable()
        {
            IObjectMessage message = A.Fake <IObjectMessage>();

            SerializableWithAttribute content = new SerializableWithAttribute();

            A.CallTo(() => session.CreateObjectMessage(content)).Returns(message).Once();
            A.CallTo(() => message.Body).Returns(content).Once();

            IMessage msg = converter.ToMessage(content, session);

            Assert.AreEqual(content, converter.FromMessage(message));
        }
Beispiel #20
0
        private void SendMessage()
        {
            //创建临时目的地,它们的存在时间只限于创建它们的连接所保持的时间
            //只有创建该临时目的地的连接上的消息消费者才能够从临时目的地中提取消息
            //ITemporaryQueue queue = m_session.CreateTemporaryQueue();

            IQueue queue = m_session.GetQueue("test_Queue");

            m_producer = m_session.CreateProducer(queue);



            //TextMessage消息类型,  普通文本消息
            ITextMessage textMessage = m_producer.CreateTextMessage();

            textMessage.Text = this.txtBox_消息.Text;

            //MapMessafe消息类型,   Map集合消息
            IMapMessage mapMessage = m_producer.CreateMapMessage();

            m_producer.Send(mapMessage);

            //ObjectMessage消息类型, 发送序列化对象
            Queue <string> obj = new Queue <string>();

            obj.Enqueue("one");
            obj.Enqueue("two");
            IObjectMessage objectMessage = m_producer.CreateObjectMessage(obj);

            m_producer.Send(objectMessage);

            //BytesMessage消息类型, 发送字节消息
            IBytesMessage bytesMessage = m_producer.CreateBytesMessage();

            bytesMessage.WriteBytes(System.Text.Encoding.Default.GetBytes("字节"));
            m_producer.Send(bytesMessage);

            //其它消息类型大同小异

            //设置是否持久化
            //m_producer.DeliveryMode= MsgDeliveryMode.Persistent;

            //设置优先级 默认 MsgPriority.BelowNormal 4级
            //m_producer.Priority = MsgPriority.BelowNormal;

            //设置过期时间,5秒后 只有Queue点对点有效
            //m_producer.TimeToLive=new TimeSpan(1000*5);

            //发送超时时间,默认等于0,如果设置超时,则所有的消息都是用同步发送
            //m_producer.RequestTimeout = new TimeSpan(1000*20);
        }
Beispiel #21
0
        public void CreateProducer(string queue, object obj)
        {
            Connection connection = ConnectionActiveMq();

            ISession     session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
            IDestination dest    = session.GetQueue(queue);

            using (IMessageProducer producer = session.CreateProducer(dest))
            {
                connection.Start();
                producer.DeliveryMode = MsgDeliveryMode.Persistent;

                IObjectMessage request = session.CreateObjectMessage(obj);

                producer.Send(request);
            }
        }
Beispiel #22
0
        public void Serializable()
        {
            IObjectMessage message = mocks.StrictMock <IObjectMessage>();

            SerializableWithAttribute content = new SerializableWithAttribute();

            Expect.Call(session.CreateObjectMessage(content)).Return(message).Repeat.Once();

            Expect.Call(message.Body).Return(content).Repeat.Once();

            mocks.ReplayAll();


            IMessage msg = converter.ToMessage(content, session);

            Assert.AreEqual(content, converter.FromMessage(message));

            mocks.VerifyAll();
        }
Beispiel #23
0
        private static void Message_Listener(IMessage message)
        {
            try
            {
                Console.WriteLine("Add Message");
                IObjectMessage objectMessage = message as IObjectMessage;
                if (objectMessage.Body != null)
                {
                    var smsJson = (string)objectMessage.Body;
                    if (!String.IsNullOrEmpty(smsJson))
                    {
                        var sUserName = ConfigHelper.GetConfigValueByKey("smsUserName");
                        var sPwd      = ConfigHelper.GetConfigValueByKey("smsPwd");
                        Console.WriteLine(string.Format("Message received: Body = {0}", smsJson));
                        var sms = new JavaScriptSerializer().Deserialize <SmsSenderModel>(smsJson);
                        var url =
                            String.Format(
                                "http://smsc.ru/sys/send.php?login={0}&psw={1}&phones={2}&mes={3}&sender={4}&charset=utf-8&translit={5}",
                                sUserName, sPwd, sms.Phone, sms.Message, sms.Sender,
                                ConfigHelper.GetConfigValueByKey("Translit"));
                        var request = WebRequest.Create(url);
                        request.Credentials = CredentialCache.DefaultCredentials;
                        var response = (HttpWebResponse)request.GetResponse();
                        response.Close();
                        Console.WriteLine(url);
                        message.Acknowledge();
                        Console.WriteLine(smsJson);

                        StreamWriter sw = new StreamWriter("out.txt", true);
                        sw.WriteLine("Message==={0}==={1}", DateTime.Now.ToString(), smsJson);
                        sw.Close();
                    }
                    Thread.Sleep(5000);
                }
            }
            catch (Exception e)
            {
                StreamWriter sw = new StreamWriter("error.txt", true);
                sw.WriteLine("Error==={0}==={1}", DateTime.Now.ToString(), e.ToString());
                sw.Close();
            }
        }
        public void Dispatch(MessageType messageType, IObjectMessage message, ConnectionId connectionId, ObjectRole sender)
        {
            IList <ObjectMessageHandler> handlers;

            if (_registeredHandlers.TryGetValue(messageType, out handlers))
            {
                for (int i = 0; i < handlers.Count; i++)
                {
                    var handler = handlers[i];
                    if ((handler.MetaData.AllowedSenders & sender) != 0)
                    {
                        handler.Invoke(message, new MessageMetadata(connectionId, _latencyInfo.GetLatency(connectionId)));
                    }
                    else
                    {
                        Debug.Log(sender + " is not allowed to send message of type " + message.GetType());
                    }
                }
            }
        }
Beispiel #25
0
 public static void SendObj(object body, string filter)
 {
     try
     {
         IConnectionFactory factory = new ConnectionFactory("failover:(tcp://192.168.100.199:61616,tcp://192.168.100.199:61617,tcp://192.168.100.199:61618)?randomize=false");
         using (IConnection connection = factory.CreateConnection())
         {
             using (ISession session = connection.CreateSession())
             {
                 IMessageProducer prod    = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue("njbosaQueue"));
                 IObjectMessage   message = prod.CreateObjectMessage(body);
                 //message.Body = body;
                 message.Properties.SetString("filter", filter);
                 prod.Send(message, MsgDeliveryMode.NonPersistent, MsgPriority.Normal, TimeSpan.MinValue);
             }
         }
     }
     catch (ThreadAbortException)
     {
         return;
     }
 }
Beispiel #26
0
        /// <summary>
        /// 生产,入队列
        /// </summary>
        /// <param name="entity">对象</param>
        /// <param name="delay">延迟时间,单位毫秒</param>
        public void EnqueueObject(object entity, long delay)
        {
            if (producer == null)
            {
                if (sessionArray.Count == 0)
                {
                    throw new Exception("队列服务尚未启动,请使用Start()方法.");
                }

                ISession session = sessionArray[0] as ISession;
                producer = session.CreateProducer(new Apache.NMS.ActiveMQ.Commands.ActiveMQQueue(queueName));
            }

            IObjectMessage msg = producer.CreateObjectMessage(entity);

            if (delay > 0)
            {
                msg.Properties["AMQ_SCHEDULED_DELAY"] = delay;
            }
            producer.Send(msg, Apache.NMS.MsgDeliveryMode.Persistent, Apache.NMS.MsgPriority.Normal, TimeSpan.MinValue);
            //msg.Acknowledge();//不需要??
        }
Beispiel #27
0
        protected void Message_ListenerStatus(IMessage receivedMsg)
        {
            IObjectMessage message = receivedMsg as IObjectMessage;

            _logger.LogInformation(message.ToString());
        }
 /// <summary>
 /// Extracts the serializable object from the given object message.
 /// </summary>
 /// <param name="message">The message to convert.</param>
 /// <returns>The resulting serializable object.</returns>
 protected virtual object ExtractSerializableFromMessage(
     IObjectMessage message)
 {
     return(message.Body);
 }
Beispiel #29
0
 protected void Message_ListenerStatus <TEntity>(IMessage receivedMsg)
 {
     IObjectMessage message = receivedMsg as IObjectMessage;
 }
 /// <summary>
 /// Extracts the serializable object from the given object message.
 /// </summary>
 /// <param name="message">The message to convert.</param>
 /// <returns>The resulting serializable object.</returns>
 protected virtual object ExtractSerializableFromMessage(
     IObjectMessage message)
 {
     return message.Body;
 }
Beispiel #31
0
        public T TransformMessage <T>(IMessage message)
        {
            if (message is T)
            {
                return((T)message);
            }
            else
            {
                IMessage result = null;

                if (message is IBytesMessage)
                {
                    IBytesMessage bytesMsg = message as IBytesMessage;
                    bytesMsg.Reset();
                    IBytesMessage msg = DoCreateBytesMessage();

                    try
                    {
                        for (;;)
                        {
                            // Reads a byte from the message stream until the stream is empty
                            msg.WriteByte(bytesMsg.ReadByte());
                        }
                    }
                    catch
                    {
                    }

                    result = msg;
                }
                else if (message is IMapMessage)
                {
                    IMapMessage mapMsg = message as IMapMessage;
                    IMapMessage msg    = DoCreateMapMessage();

                    foreach (string key in mapMsg.Body.Keys)
                    {
                        msg.Body[key] = mapMsg.Body[key];
                    }

                    result = msg;
                }
                else if (message is IObjectMessage)
                {
                    IObjectMessage objMsg = message as IObjectMessage;
                    IObjectMessage msg    = DoCreateObjectMessage();
                    msg.Body = objMsg.Body;

                    result = msg;
                }
                else if (message is IStreamMessage)
                {
                    IStreamMessage streamMessage = message as IStreamMessage;
                    streamMessage.Reset();
                    IStreamMessage msg = DoCreateStreamMessage();

                    object obj = null;

                    try
                    {
                        while ((obj = streamMessage.ReadObject()) != null)
                        {
                            msg.WriteObject(obj);
                        }
                    }
                    catch
                    {
                    }

                    result = msg;
                }
                else if (message is ITextMessage)
                {
                    ITextMessage textMsg = message as ITextMessage;
                    ITextMessage msg     = DoCreateTextMessage();
                    msg.Text = textMsg.Text;
                    result   = msg;
                }
                else
                {
                    result = DoCreateMessage();
                }

                CopyProperties(message, result);

                // Let the subclass have a chance to do any last minute configurations
                // on the newly converted message.
                DoPostProcessMessage(result);

                return((T)result);
            }
        }