第 8 章 发件人和接收器
客户端使用发送方和接收器链接来代表传递消息的频道。发件人和接收器是单向的,消息来源的源结尾和消息目的地的目标结尾。
源和目标通常指向消息代理上的队列或主题。源也用于代表订阅。
8.1. 根据需要创建队列和主题 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
有些消息服务器支持按需创建队列和主题。附加发送方或接收器时,服务器使用发送者目标地址或接收器源地址来创建名称与地址匹配的队列或主题。
邮件服务器通常默认为创建队列(用于一对一消息发送)或主题(用于一对多消息发送)。客户端可以通过在源或目标上设置 功能来指示首选情况。
队列或主题
要选择队列或主题语义,请按照以下步骤执行:
- 配置您的消息服务器,以自动创建队列和主题。这通常是默认配置。
-
在发送者目标或接收器源上设置
队列或主题功能,如下例所示。
示例:发送到按需创建的队列
void on_container_start(proton::container& cont) override {
proton::connection conn = cont.connect("amqp://example.com");
proton::sender_options opts {};
proton::target_options topts {};
topts.capabilities(std::vector<proton::symbol> { "queue" });
opts.target(topts);
conn.open_sender("jobs", opts);
}
示例:从按需创建的主题接收
void on_container_start(proton::container& cont) override {
proton::connection conn = cont.connect("amqp://example.com");
proton::receiver_options opts {};
proton::source_options sopts {};
sopts.capabilities(std::vector<proton::symbol> { "topic" });
opts.source(sopts);
conn.open_receiver("notifications", opts);
}
如需了解更多详细信息,请参阅以下示例: