Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RabbitMQ到Azure物联网中心?_C#_Rabbitmq_Amqp_Iot_Azure Iot Hub - Fatal编程技术网

C# RabbitMQ到Azure物联网中心?

C# RabbitMQ到Azure物联网中心?,c#,rabbitmq,amqp,iot,azure-iot-hub,C#,Rabbitmq,Amqp,Iot,Azure Iot Hub,目前,我们希望使用RabbitMQ访问Azure IoT中心。我们知道还有其他选择,并且已经测试了一些,但是这个项目是为了测试它是否可能并且适合我们 using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Text; 我们的代码看起来有点像这样: var factory = new ConnectionFactory(); factory.HostName = $"{IOT_HUB_NAME

目前,我们希望使用RabbitMQ访问Azure IoT中心。我们知道还有其他选择,并且已经测试了一些,但是这个项目是为了测试它是否可能并且适合我们

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;
我们的代码看起来有点像这样:

var factory = new ConnectionFactory();
factory.HostName = $"{IOT_HUB_NAME}.azure-devices.net";

// This fails with the message: 'None of the specified endpoints were reachable.'
using (var connection = factory.CreateConnection())
{
    // ...
}
工厂要连接到的端点是:
amqp://.azure-devices.net:5672

我们的IT部门已经检查了我们的filewall:它没有阻止此连接

使用telnet进行快速检查会导致连接错误:

telnet <IoT-Hub Name>.azure-devices.net 5672
telnet.azure-devices.net 5672
但是,端口5671(AMQP要求的另一个端口)可用

我已经尝试设置了
factory.Port=5671
,但没有成功。使用Microsoft Azure IoT SDK进行的另一项检查表明,确实可以连接到IoT中心


这导致我假设我错过了一个重要的配置,或者可能无法使用RabbitMQ连接到Azure IoT集线器。

您当然希望研究寻址特定的端点,例如从该文档链接的端点和身份验证机制。

这里再次作为答案:


在柏林(德国)与微软的云解决方案架构师交谈后,我确信这是不可能的,因为使用的AMQP协议版本不同(0.9.1到1.0似乎不可能)。

感谢您的回答。但是,您的链接文档仅涵盖通过Microsoft Azure SDK访问物联网中心。如前所述,我可以做到这一点。我的问题是,如何使用RabbitMQ实现这一点。我们确实还没有关于AMQP的详细文档。然而,我们的一位MVP发表了几篇文章,肯定会有所帮助(使用另一个库,但解释端点和身份验证)。如果可以的话,我想知道你为什么不想使用我们的SDK。我们希望对其进行改进,因此任何反馈(尤其是负面反馈)都比welcome@OlivierBlock谢谢你的回复。我们目前正在寻找用于AMQP通信的SDK。为此,我们已经创建了一些原型,还有一个使用Microsoft Azure SDK。之前的所有操作都按预期工作。问题是RabbitMQ是否也可能成为候选之一,因为我们不必使用它来绑定Azure。在柏林(德国)与微软的一位云解决方案架构师交谈之后,我非常确定这是不可能的,因为所使用的AMQP协议存在版本差异(0.9.1到1.0似乎不可能)。事实上,AMQP版本可能是一个问题。谢谢分享更多关于你正在做的事情。您是否检查了我们在csharp SDK()的引擎盖下使用的那一个?