0

IOThub へのテスト アカウントを作成し、azure-iot-sdks git アーカイブをプルしてテストしました。

接続文字列を iothub_client_sample_http と iothub_client_sample_mqtt .c ファイルの両方に追加しました。

iothub_client_sample_http を実行すると、PR_lock から呼び出された pthread_mutex_lock でセグメンテーション違反が発生する前に、いくつかのネットワーク パケットが送信され、ACK が返されます。これを追跡して修正します。

さらに重要なことは、MQTT プロトコルを使用したいということです。iothub_client_sample_mqtt アプリを実行すると、接続コードでタイムアウトが発生します。ワイヤーシャークでパケットを調べたところ、次のように表示されました。

TCP 74 33226 > セキュア mqtt [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=81898578 TSecr=0 WS=128

その後、さらに 2 つのパケットが再送信されて同じように送信されます。応答パケットが表示されません。

MQTT の使用を許可するために IOThub で有効にする必要があるものはありますか?

実際に製品で mosquitto を使用したいのですが、コードから同じシナリオが得られます。

助けてくれてありがとう。

4

2 に答える 2

0

答えてくれてありがとう。会社がポート 8883 へのすべてのパケットをフィルタリングしていたことが判明しました。これが私の問題でした。

MQTT には、ハブへの他のプロトコルよりもいくつかの特定の利点があります。より一般的になるにつれて、IT 組織はこの種のことを変更する必要があります。

再度、感謝します。

于 2016-09-28T15:17:40.940 に答える