当前,我们想使用RabbitMQ访问我们的Azure IoT-Hub。我们知道还有其他选择,并且已经测试了一些,但是这个项目是为了测试是否可行并且适合我们。
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部门已经检查了文件墙:它没有阻止此连接。
使用telnet快速检查会导致连接错误: telnet <IoT-Hub Name>.azure-devices.net 5672 但是,端口5671(AMQP所需的另一个端口)可用。
telnet <IoT-Hub Name>.azure-devices.net 5672
我已经尝试设置factory.Port = 5671,但没有成功。使用Microsoft Azure IoT SDK的另一项检查表明,确实可以连接到IoT-Hub。
这使我做出以下假设:我要么错过了重要的配置,要么可能无法通过RabbitMQ连接到Azure IoT-Hub。