最后发现我做错了什么,因为Amqp没有队列和主题的配置,它可以在Capabilities中定义。出于某种原因,Artemis默认创建主题(多播)。如果您需要AnyCast,您可以使用指定您的需求 Capabilities = new Symbol[] { new Symbol("queue") } 。对于完整的测试事实:
Capabilities = new Symbol[] { new Symbol("queue") }
public async Task TestHelloWorld() { //strange, works using regular activeMQ and the amqp test broker from here: http://azure.github.io/amqpnetlite/articles/hello_amqp.html //but this does not work in ActiveMQ Artemis Address address = new Address("amqp://guest:guest@localhost:5672"); Connection connection = await Connection.Factory.CreateAsync(address); Session session = new Session(connection); Message message = new Message("Hello AMQP"); Target target = new Target { Address = "q1", Capabilities = new Symbol[] { new Symbol("queue") } }; SenderLink sender = new SenderLink(session, "sender-link", target, null); sender.Send(message); Source source = new Source { Address = "q1", Capabilities = new Symbol[] { new Symbol("queue") } }; ReceiverLink receiver = new ReceiverLink(session, "receiver-link", source, null); message = await receiver.ReceiveAsync(); receiver.Accept(message); await sender.CloseAsync(); await receiver.CloseAsync(); await session.CloseAsync(); await connection.CloseAsync(); }