public async Task UnroutedMessage_TriggerEvents()
        {
            Console.WriteLine("UnroutedMessage_TriggerEvents");

            var conn = await base.StartConnection();

            var channel = await conn.CreateChannel();

            UndeliveredMessage undelivered = default(UndeliveredMessage);

            channel.MessageUndeliveredHandler += message =>
            {
                undelivered = message;
                return(Task.CompletedTask);
            };

            await channel.ExchangeDeclare("test_direct", "direct", true, false, null, waitConfirmation : true);

            channel.BasicPublishFast("test_direct", "non_existing_routing", mandatory: true, properties: null, buffer: new ArraySegment <byte>(new byte[] { 1, 2, 3 }));

            await Task.Delay(500);

            undelivered.exchange.Should().Be("test_direct");
            undelivered.bodySize.Should().Be(3);
            undelivered.replyCode.Should().Be(312);
            undelivered.replyText.Should().Be("NO_ROUTE");
            undelivered.routingKey.Should().Be("non_existing_routing");
        }
        private void HandleUndeliveredMessage(GridInstantMessage im, string reason)
        {
            UndeliveredMessage handlerUndeliveredMessage = OnUndeliveredMessage;

            // If this event has handlers, then an IM from an agent will be
            // considered delivered. This will suppress the error message.
            if (handlerUndeliveredMessage != null)
            {
                handlerUndeliveredMessage(im, reason);
                return;
            }

            //MainConsole.Instance.DebugFormat("[INSTANT MESSAGE]: Undeliverable");
        }
Example #3
0
        private void HandleUndeliveredMessage(GridInstantMessage im, MessageResultNotification result)
        {
            UndeliveredMessage handlerUndeliveredMessage = OnUndeliveredMessage;

            // If this event has handlers, then the IM will be considered
            // delivered. This will suppress the error message.
            //
            if (handlerUndeliveredMessage != null)
            {
                handlerUndeliveredMessage(im);
                result(true);
                return;
            }

            //m_log.DebugFormat("[INSTANT MESSAGE]: Undeliverable");
            result(false);
        }
        private void HandleUndeliveredMessage(GridInstantMessage im, MessageResultNotification result)
        {
            UndeliveredMessage handlerUndeliveredMessage = OnUndeliveredMessage;

            // If this event has handlers, then the IM will be considered
            // delivered. This will suppress the error message.
            //
            if (handlerUndeliveredMessage != null)
            {
                handlerUndeliveredMessage(im);
                result(true);
                return;
            }

            m_log.WarnFormat("[INSTANT MESSAGE]: Message undeliverable and no undeliverable message handler for message from {0} to {1}", im.fromAgentID, im.toAgentID);
            result(false);
        }
        private void HandleUndeliveredMessage(GridInstantMessage im, MessageResultNotification result)
        {
            UndeliveredMessage handlerUndeliveredMessage = OnUndeliveredMessage;

            // If this event has handlers, then an IM from an agent will be
            // considered delivered. This will suppress the error message.
            //
            if (handlerUndeliveredMessage != null)
            {
                handlerUndeliveredMessage(im);
                if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent)
                {
                    result(true);
                }
                else
                {
                    result(false);
                }
                return;
            }

            //m_log.DebugFormat("[INSTANT MESSAGE]: Undeliverable");
            result(false);
        }