1
目前我們想使用RabbitMQ訪問我們的Azure IoT-Hub。我們知道還有其他的選擇,並且已經測試了一些,但是這個項目是測試它是否可行並且適合我們。RabbitMQ到Azure物聯網集線器?
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://<IoT-Hub Name>.azure-devices.net:5672
我們的IT部門已經檢查了我們的filewall:它不堵這個連接。
快速檢查使用telnet導致連接錯誤:
telnet <IoT-Hub Name>.azure-devices.net 5672
然而,端口5671(由AMQP需要另一個端口)是可用的。
我已經嘗試設置factory.Port = 5671
沒有成功。使用Microsoft Azure IoT SDK的另一項檢查表明,確實有可能連接到IoT-Hub。
這導致我假設我錯過了重要的配置,或者可能無法使用RabbitMQ連接到Azure IoT-Hubs。
謝謝你的回答。但是,鏈接的文檔僅涵蓋通過Microsoft Azure SDK訪問iot-hub。如前所述,我可以做到這一點。我的問題是,如何使用RabbitMQ來實現這一點。 – DeveloperExceptionError
我們的確沒有AMQP的這種詳細文檔。然而,我們的一個MVP發表了一些可以幫助的文章(使用另一個庫,但解釋端點和認證)。 https://paolopatierno.wordpress.com/2015/10/24/connecting-to-the-azure-iot-hub-using-an-the-amqp-stack/ https://paolopatierno.wordpress.com/ 2015/10/31/azure-iot-hub-commands-and-feedback-using-amqp-net-lite/ 如果你願意,我想了解爲什麼你不想使用我們的SDK。我們希望改進它們,所以任何反饋(尤其是否定的)都非常值得歡迎 –
@OlivierBlock感謝您的回覆。我們正在尋找用於AMQP通信的SDK。爲此我們已經創建了一些原型,也使用了Microsoft Azure SDK。所有以前的都按預期工作。問題是如果RabbitMQ也可能成爲可能的候選人之一,因爲我們不會被綁定到Azure使用它。在與位於柏林(德國)的Microsoft的一位雲解決方案架構師談過後,我確信這是不可能的,因爲所使用的AMQP協議版本不同(0.9.1到1.0似乎不可能)。 – DeveloperExceptionError