0

我正在尝试使用 c# 使用 stomp 协议从 activeMQ 队列接收/发送消息。因为我对activemq和stomp不太了解。所以我正在寻找一些合适的文档或示例代码,我可以通过它们逐步学习。

  static void Main(string[] args)
    {
        Apache.NMS.Stomp.ConnectionFactory factory  = new Apache.NMS.Stomp.ConnectionFactory(new Uri("stomp:tcp://localhost:61613"));
        IConnection connection = factory.CreateConnection();
        ISession session = connection.CreateSession();
        IDestination destination = session.GetDestination("/queue/notification");
        IMessageConsumer consumer = session.CreateConsumer(destination);
        connection.Start();
        consumer.Listener += new MessageListener(OnMessage);
        Console.WriteLine("Consumer started, waiting for messages... (Press ENTER to stop.)");
        Console.ReadLine();
        connection.Close();
    }
    private static void OnMessage(IMessage message)
    { 
        try
        { 
            Console.WriteLine("Median-Server (.NET): Message received"); 
            ITextMessage msg = (ITextMessage)message; 
            message.Acknowledge();
            Console.WriteLine(msg.Text);
        } 
        catch (Exception ex)
        { 
            Console.WriteLine(ex.Message);
            Console.WriteLine("---");
            Console.WriteLine(ex.InnerException);
            Console.WriteLine("---"); 
            Console.WriteLine(ex.InnerException.Message);
        }
    }
}

我已经尝试过了。是否是进行踩踏连接的正确方法。

4

1 回答 1

2

有各种语言的 STOMP 客户端库,对于 .NET 有Apache.NMS.Stomp库,它围绕 STOMP 语义放置了一个 JMS 类型外观。如果您想获得更多技术知识并了解 STOMP 协议的真正含义,那么STOMP规范非常清晰易懂。当然,ActiveMQ 自己的站点也有一些关于STOMP 支持的文档,您应该阅读这些文档。一些网络搜索也将很快为您提供一些关于使用 NMS.Stomp 库与 ActiveMQ 交互的不错的博客文章。

于 2013-01-21T17:36:42.607 回答