nservicebus 在 node.js 中使用 RabbitMQ:需要非空 message_id 属性

nservicebus using RabbitMQ in node.js: a non-empty message_id property is required

我正在尝试让一个 Node.js 应用程序使用 NServiceBus 和 RabbitMQ 与另一个 Node.js 应用程序进行通信。

我发现的问题是,在所有示例中,消息类型都必须在 .NET 程序集中定义,但我们不打算使用 .NET。

有没有一种方法可以在 Node.js(或其他语言)中指定消息类型,而不必在 .NET 中执行? 我查看了非侵入式模式,但据我所知仍然需要在您的 .NET 应用程序中进行配置 (http://docs.particular.net/nservicebus/messaging/unobtrusive-mode)

NServiceBus 是 library/platform 为 .NET 构建的,而不是为 Node.js 构建的。

如果您真的想使用 NServiceBus,您可以做的是在 .NET 中构建应用程序的大部分后端,并让 Node.js 部分通过 API 调用与 NServiceBus 通信(ASP.NET) 或通过手动确保将正确的 json (或其他格式)放在 RabbitMQ 上以供 NServiceBus 使用。否则,您可以使用原始 AMQP 并直接与 RabbitMQ 对话,这显然将您限制为只能使用 RabbitMQ,并且您将错过所有 NServiceBus 功能。

如果您想与 NServiceBus 端点集成,则要获得特定行为是获取或设置 headers。在这里 http://docs.particular.net/nservicebus/messaging/third-party-integrationor or here http://docs.particular.net/nservicebus/messaging/headers.

阅读更多关于细节的信息