2017-06-08 98 views
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。

回答

0

您當然想要考慮尋找特定的端點,如device to cloud messaging之一,以及從這個文檔鏈接到認證機制。

+0

謝謝你的回答。但是,鏈接的文檔僅涵蓋通過Microsoft Azure SDK訪問iot-hub。如前所述,我可以做到這一點。我的問題是,如何使用RabbitMQ來實現這一點。 – DeveloperExceptionError

+0

我們的確沒有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。我們希望改進它們,所以任何反饋(尤其是否定的)都非常值得歡迎 –

+0

@OlivierBlock感謝您的回覆。我們正在尋找用於AMQP通信的SDK。爲此我們已經創建了一些原型,也使用了Microsoft Azure SDK。所有以前的都按預期工作。問題是如果RabbitMQ也可能成爲可能的候選人之一,因爲我們不會被綁定到Azure使用它。在與位於柏林(德國)的Microsoft的一位雲解決方案架構師談過後,我確信這是不可能的,因爲所使用的AMQP協議版本不同(0.9.1到1.0似乎不可能)。 – DeveloperExceptionError

相關問題