问题标签 [rabbitmq-c]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1033 浏览

c# - RabbitMQ 消费者/接收者不在 C# Windows 窗体中工作

我目前正在使用rabbitMQ服务器,当我尝试在c#控制台应用程序中工作时,发布交换工作并成功保存在服务器中,消息将生动地出现在控制台中但是当我在C# windows窗体中应用我的源代码时,它不会得到发布者发送的所有消息。我将该方法放在构造函数事件中,但根本没有发生,它不会收到任何消息。

请看下面的源代码

0 投票
2 回答
1287 浏览

c++ - 使用 rabbitmq-c 作为静态库会报错:致命错误:amqp.h: No such file or directory

我正在尝试将rabbitmq-c构建为静态库,以便可以在 AWS lambda 中使用。

我能够按照文档构建示例,并且这些示例运行良好。

但现在我正试图在我自己的项目中使用。以下是我采取的步骤:

  1. 第三方目录中克隆https://github.com/alanxz/rabbitmq-c 。
  2. 在我的源目录中,我正在使用 cmake 构建。

下面是我的 CMakeLists.txt

  1. 我运行cmake .. -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF(没有任何问题)。
  2. 但是当我执行make时,它​​会给出以下错误:

这是我的 execute_code.cpp(我只是在这里删除不必要的代码)

当我不使用时

我能够构建rabbitmq-static,下面是make响应

它能够生成librabbitmq.a,因此它能够静态构建。

我尝试使用最新的稳定版本https://github.com/alanxz/rabbitmq-c/releases/tag/v0.10.0 。但仍然是同样的错误。

我尝试搜索有关该问题的信息,但找不到任何有用的信息。

我是cmake的新手,你能告诉我我做错了什么还是我错过了什么?

0 投票
1 回答
86 浏览

rabbitmq - rabbitmq-c中的框架和信封有什么区别?

在rabbitmq-c的上下文中,框架和信封有什么区别。这些示例似乎可以互换使用它们,并且不清楚有什么区别。

0 投票
1 回答
36 浏览

rabbitmq - AMQP 消息属性未发布到 RabbitMQ 集线器

我已使用 vcpkg 构建 rabbitmq-c,如https://github.com/alanxz/rabbitmq-c构建说明中所述:

然后我构建了https://github.com/alanxz/SimpleAmqpClient(最新发布版本 2.5.1)

我面临的问题是 CorrelationId、Type 等消息属性没有发送到 RabbitMq 集线器。在我升级到最新版本之前,相同的代码以前可以工作。

这是我正在使用的代码:我使用以下代码发布消息:

注意:邮件正文和标头正在发送,没有任何问题。

观察:如果我不初始化标头,则仅正确发送 AppId 属性;但是如果我初始化标头,那么除了标头之外,没有其他属性被发送到集线器。正文始终正确发送;没问题。

有人可以找出错误吗?

PS:我为此在 Git 存储库中创建了一个问题:https ://github.com/alanxz/SimpleAmqpClient/issues/287

0 投票
1 回答
99 浏览

c++ - rabbitmq-c 发送 nlohmann json

想通过 RabbitMQ-C 发送图像,但图像文件太大。接收方无法检索图像。因此,我将图像转换为 base64,然后将其放入 JSON。

使用 RabbitMQ-C 将消息(msg)发送给接收者但失败 [错误指向这里]

是 const char* 不能使用 amqp_cstring_bytes(msg) 转换为 amqp_bytes_t 吗?

并得到这个错误

0 投票
0 回答
30 浏览

c++ - 当指令在两个函数之间划分时,amqp-c 无法发送到队列中,但如果指令集位于单个函数中,则可以工作。为什么?

重要的提示:

由于 Ikegami 的评论,此问题已被编辑。我希望实际问题现在更清楚了。请注意,在撰写本文时是上午 10 点,添加的代码没有经过 IDE 或任何类型的代码编辑器,因此可能会出现拼写错误、缩进错误和错误。遇到这种情况请谅解,谢谢。回到最初的问题。

我的大脑围绕着 AMQP,在尝试了几个库之后,rabbitmq-c让我最接近成功。我仍在研究这些示例,但即使是那些也让我感到悲伤,一些上下文代码,首先是工作版本:

主.cpp:

处理程序.h

和 Handler.cpp

我真正想做的和我没能做的看起来像:

主文件

main 的详细信息在这里并不重要,文件在这里只是为了显示我想要使用我的 Handler 类的方式:

  1. 创建处理程序类,
  2. 延迟一段时间以确保我们不会陷入跨网络通信的延迟,然后将消息发送到队列。最后
  3. 延迟一段时间,然后关闭连接并关闭程序

处理程序.h

和 handler.cpp

您可以看到当前工作的实现与我想要的实现之间的差异。据我了解,将指令从一个功能拆分为多个不应该影响功能,但它似乎会。我尝试过使用和不使用 QTimers,但均无济于事。

这里有什么问题?我想将连接的形成,消息的发送和关闭连接分开到他们自己的功能中,但是无论我尝试什么,它都不起作用。我正在使用的库示例可以在这里找到。

如前所述,我尝试了不同的库: QAMQP 的两个版本都在这里这里找到,以及原始 C++ 实现在这里找到。在这三者中,rabbitmq-c 让我最接近突破。

任何帮助将不胜感激,谢谢。

编辑

我重做了代码示例以使我的观点更清楚