2017-07-22 4 views
0

私は、azure iot-device-client SDKバージョン1.3.31を使用して、MQTTプロトコル経由でiotハブに接続し、メッセージを送信する多くのデバイスをシミュレートする小さなアプリケーションを作成しようとしています。最終的にはマルチスレッド化され、数千のシミュレートされたデバイスが同時に接続されます。これはデバイスクライアントsdkでは可能ではないようです。デバイスsdkをこのように使用できますか?Azure iotデバイスsdkは複数のデバイスを同時に接続できますか?

IotHubClientProtocol protocol = IotHubClientProtocol.MQTT; 

List<String> conns = new ArrayList<>(); 
//conns.add() 10 times with correct connection strings  

conns.forEach((newConnString) -> { 
    try { 
     DeviceClient client = new DeviceClient(newConnString, protocol); 

     client.open(); 
     System.out.println("connected - "+newConnString); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
}); 

私はこれを実行すると、私は残りの部分は、このエラーでforcably切断取得と接続する他のすべてのデバイスを取得:MQTTプロトコルの場合

java.io.IOException: Unable to subscribe to topic :devices/sim_3/messages/devicebound/# because java.io.EOFExceptionConnection lost at com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection.open(MqttIotHubConnection.java:140) at com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttTransport.open(MqttTransport.java:83) at com.microsoft.azure.sdk.iot.device.DeviceIO.open(DeviceIO.java:212) at com.microsoft.azure.sdk.iot.device.DeviceClient.open(DeviceClient.java:197) at com.company.Main.lambda$main$0(Main.java:49) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.company.Main.main(Main.java:45)

答えて

1

を、それは同じTLS接続を介して複数のデバイスを接続するサポートされていません。同時に。

IoT Hub only supports one active MQTT connection per device. Any new MQTT connection on behalf of the same device ID causes IoT Hub to drop the existing connection.

ご利用の場合、AMQPを選択できます。デバイス間の接続多重化をサポートしています。

Ref:choose a communication protocol

+0

私はそれぞれに異なるDEVICEID /資格情報を提供しそうであるように、各DeviceClientが別々のMQTT接続を行うという前提の下にありました。また、AMQPでサポートされていないデバイスのツインとメソッドのメッセージにもアクセスしたいと考えています。 – darrickc

1

リタの答えに加えて、シミュレートされたMQTTデバイス自身のAppDomainと軽量(未処理の)MQTTクライアント・ライブラリ(例:M2Mqtt)ごとに使用することをお勧めします。 この概念はAzure IoT Hub Testerで使用されています。ここでは、各MQTTデバイスは、独自のAppDomainで分離され、ホストされ、サブスクライブされ、公開されます。次の画面スニペットは、AzureのIoTをハブに接続30台の仮想MQTTデバイスを示しています

enter image description here

関連する問題