タグ付けされた質問 「mqtt」

MQTTメッセージングプロトコルに関する質問については、マシン間通信用の軽量TCP / IPベースのシステム。

4
証明書を外部メモリに保持することは悪い習慣ですか?
STM32マイクロコントローラーを使用してAWS-IoTに取り組んでいます。 今日まで、証明書をフラッシュに書き込み、フラッシュを外部読み取りからロックしていました。アプリケーションコードが増えると、フラッシュ上のスペースが少なくなるため、証明書を外部でSDカード/ EEPROMに移動し、AWS-IoTに接続する前に必要なときにいつでも読み取ることを計画していました。 ノート: Thing用に作成されたポリシーは、特定の名前のデバイスのみがその特定の証明書に接続することを許可します。 データプロセッサに接続されている2つのチャネル(名前とデータフィードチャネル)のみにパブリッシュすることが許可されています。 Thingが他のトピックをパブリッシュ/サブスクライブすると、AWSはThingを即座に切断します。 デバイスの盗難/不正が検出された場合は、サーバーからキーを無効にします。 悪用者は証明書(RootCA、サーバーキー、クライアントキー)で何ができますか? 悪用者がアクセスできる外部ストレージにそのようなユースケースの証明書を保持することは悪い習慣ですか?
11 security  mqtt  aws-iot 

1
Arch Linuxでmosquitto_sub「接続が拒否されました」
インストール私はそうmosquittoとmosquitto-clientラズベリーPiを経由Raspbianジェシーを実行しているのapt-getと同様にmosquitto通過アーチのLinuxを実行している別のパイの上にpacman。Archでは、クライアントユーティリティを個別にインストールする必要はありません。 Raspbianでの簡単なサブスクリプション/パブリッシングのテストは、そのままで機能しました。 mosquitto_sub –d –t blub mosquitto_pub –d –t blub –m “test” Archボックスからのパブリッシュも機能します。 mosquitto_pub -h <IP-Raspbian> -t blub -m "test" ただし、Archシステムのトピックをサブスクライブすると、次のようになります。 mosquitto_sub –d –t blub Error: Connection refused これはかなり一般的です。ここで何が問題になっていますか?

3
MosquittoのWebソケットを使用するか、クライアントを直接接続する必要がありますか?
このブログによると、Mosquitto(MQTTブローカー)はWebソケットを介したクライアントへの接続をサポートしています。ブログ記事は、Webソケットプロトコルが現在のブラウザーの大部分でサポートされているにもかかわらず、Webブラウザーが適切なTCPソケットを(まだ)サポートしていないため、Webソケットがブラウザーアプリケーションにとってより有用であることを示唆しているようです。 ネットワークにさまざまなクライアント(例:Raspberry Pisなどのマイクロコントローラーに基づくセンサーやアクチュエーター)しかない場合、直接TCP接続でWebソケットを使用する利点はありますか?ブラウザと通信しているときだけ、Webソケットプロトコルのオーバーヘッドはそれだけの価値がありますか?

2
WebブラウザーでIoTデバイスを検出していますか?
最近、Xiaomiからいくつかのwifiリレーを購入しました。これまでのところしっかりしているが、私はXiaomiのアプリが本当に嫌いだ。しかし、私はそれが実際にLANとインターネットの両方で機能するという考えが好きです。Xiaomiのサーバーが中国にあることを考えると、LANに接続しているときは、オンとオフをすばやく切り替えられます。 だから私は自分のESP8266ベースのリレーを使いたいと思っています(ハードウェアを準備できるので、それはおまけです)。私の問題は、Webページからネットワーク上のリレーを自動的に検出するにはどうすればよいですか? 「アプリ」から、SSDP、mDNS-SD、またはUPNPを使用して物事を検出できます。しかし、これがWebブラウザー(基本的にAndroid上のChrome)から可能かどうかについての情報は見つかりませんでした。ウェザーステーションのWebページをプログレッシブWebアプリに変更して以来、夢中になりました。インストールする必要があるアプリではなく、単にWebページであるという考え方が本当に好きです。また、PWAはオフラインモードでもギャップを埋めます。 しかし、奇妙なことに、「難しい」部分(LANの外側からリレーをオン/オフにする)をMQTTサーバー経由で解決するのは簡単です。しかし、私は外部のMQTTサーバーに依存しないことを好みます。LANを使用している場合は、リレーと直接通信したいと思います。そうでない場合は、MQTTを介してコマンドを送信します。 もちろん、リレーにクエリを送信するサーバーに依存することもできますが、その場合はインターネット接続(MQTTサーバーが「クラウド」上にある場合)、またはホームホストサーバーが必要です。私は自宅にサーバーを持っています。持っていなくても、ラズベリーpiは簡単にギャップを埋めることができます。しかし、理想は、LAN(この場合はWifi)を介してデバイスと通信するときにサーバーを必要としないことです。私はそれを可能な限りP2Pに保ち、WANにいるときのフォールバックとしてのみMQTTを使用することを好みます(MQTTはCG-NATおよびポート転送の問題を解決します)。


1
MQTTは常に接続され、4Gデータロード
私は、4G / WiFiルーター/モデムを介してブローカー(蚊)に接続されている何千ものMQTTクライアントを含むIoTプロジェクトに取り組んでいます。10台未満のクライアントが同じルーターに接続され、ルーターは異なる場所(異なる都市)から来ています。 現在、クライアントはほとんどなく、常にブローカーに接続されています。この議論から、1000ユニット以上に成長しても問題ないことを知っています。 私の質問は、4G接続のトラフィック負荷についてです。エンドユーザーは、これらのすべての「チャネル」が開かれ、使用されない状態でのデータ消費を恐れています。 アクティビティがない場合、キープアライブパケットのみが送信されることを理解している限り、MQTTのドキュメントでこの情報を確実に見つけることはできません。 パケットがパブリッシュされていないときにトラフィックが無視できると想定できますか?
10 mqtt 

2
MQTTは1000以上のクライアントでスケーラブルですか?
TCPソケットを介してペイロードを1日1回サーバーに送信するシナリオ IoTデバイス(現在はIPv4デバイス)。サーバーにはパブリックIPアドレスがあり、デバイスはルーター/ NATの背後にあります。ESP8266に基づくモジュール(つまり、Olimexのモジュール)を使用します 目標は、サーバーは、それが必要とする時はいつでも任意のクライアントにデータを送信することができるはずです。ホールパンチングのように、クライアントからクライアントへの直接通信(つまり、スマートフォンからデバイスに接続)には興味がありません。 その他の要件 IoTデバイスは数千まで成長する可能性があります。彼らのインターネット接続は、多くの4G対応ルーター/モデムによって提供されています。それぞれが10〜20のクライアントを処理します。 提案される解決策 私が理解している限り、一般的な解決策はMQTTです。クライアントは定期的にブローカー(ホスティングサーバーで実行されているMosquitto)にデータを送信します。ブローカーは同じサーバーで実行されているメインのWebアプリを更新します。 質問 MQTTアプローチは、4Gルーターの背後にある「多数」のデバイス(1000以上)に適していますか?
10 mqtt  wifi  routers 

1
非IPデバイス通信プロトコル
非IPデバイスの通信について質問があります。 私の研究から、CoAPとDDSがデバイス間通信に使用できることを学びました。 MQTTは、デバイスからゲートウェイ、デバイスからサービス、またはクラウドに役立ちます。 私の質問は、非IPデバイス(IPなしで単純なRFまたはBluetoothなどを介して通信するデバイス)がこれらのプロトコルをどのように使用できるかです。 MQTTはTCP / IPを使用します COAP、DDS、MQTT-SNはUDP / IPを使用 つまり、IPを使用しています。これはどのようにして可能ですか?D2DおよびデバイスからゲートウェイにTCPまたはUDPを使用しない他のプロトコルはありますか?

3
MQTTの標準化されたRPCメカニズムはありますか?
Stack Overflowでは、 MQTTを介した要求/応答の相互作用の実装についての質問があります。1つの回答として、1つのトピックでリクエストを発行し、リクエストに含まれていた別のトークンでレスポンスをリッスンすることでそれを行うことができます。少し厄介ですが、機能します。 MQTTはIoT全体で広く使用されているので、相互運用性のためにこのRPCタイプの相互作用を標準化する試みはあったのでしょうか。
10 mqtt  standards 

1
RPI 3はMQTTでIoTサーバーとして機能しますか?
私は以下のリンクされた質問に答え、考え始めました、たとえば、LoraWan上のMQTTなどのIoTスタックを実行するためのハードウェア仕様は何ですか?Raspberry PI 3は存続しますか? RPIがLoraWanをどのように接続するか、特にRAMとストレージの使用については気にしません。 開発用のシンプルな軽量IoTサーバーを選択するにはどうすればよいですか?

1
1つのリクエストで複数のMQTTトピックを公開できますか?
各センサーの読み取り値を次のようなトピックに個別に公開する複数のセンサーを備えたデバイスを持っています device1-id/sensor1-id = 10.2 device1-id/sensor2-id = 15.5 [...] Amazon AWS IoT SDKを使用してAWS IoTにフィードします。 mqtt_params.qos = QOS1; mqtt_params.payload = payload; mqtt_params.payloadLen = payload_len; rc = aws_iot_mqtt_publish(&client, topic, topic_len, &mqtt_params); 各呼び出しは、個別のTCPパケットとAWS MQTTブローカーからの個別の応答を生成します。問題は、一部のノードが非常に遅いネットワーク上にあり、すべてのパケットがパブリッシングを遅延させた後、ACKを待機していることです。 センサーの読み取り値をすべて1つのTCPパケットにまとめて、それらを別々のトピックに公開し、QOS = 1を維持する方法はありますか?
10 mqtt  aws-iot 

3
MQTT over TLSとMQTTのパフォーマンス
MQTTは非常に用途が広いですが、それ自体も保護されていません。これは仕様によるものです。 Stanford-Clark氏によると、セキュリティを強化するためにセキュリティメカニズムをMQTTの周りに配置できることを彼とNipperが知っていたため、セキュリティは当初プロトコルから意識的に除外されていました。また、当時、スタンフォードクラーク氏は、気象観測所からの風速データなど、MQTTを介して送信される情報は特に保護する必要はないとしました。- ソース MQTTにラップできるセキュリティメカニズムの1つはTLSです。今日、ほとんどのブローカーがこれをサポートしています。もちろん、ラッピングメジャーによってオーバーヘッドが生じます。このオーバーヘッドは無視できる可能性があります(HiveMQブログを参照)。 現在、私のプロジェクトのMQTTの実行可能性を評価するために、TLSを介したMQTTと単純なMQTTのパフォーマンスの低下に関する情報(できれば信頼できる情報源)を探しています。特に、テクノロジーが多数の加入者に拡大する場合。 MQTT over TLSのパフォーマンスに関する有効なデータを取得するためのプロトタイピング以外の方法はありますか?
10 security  mqtt  tls 

1
シリアルCOMを使用してATコマンドをESP8266に送信するArduinoでMQTTを使用する方法
MQTTプロトコルを調べ始めました。 状況 私の大学のプロジェクトでは、現在、ArduinoをメインMCUとして使用し、そのすべての作業を行い、シリアル通信を使用しています。ATコマンドをesp8266に送信します(HTTP要求の場合、サーバーでスクリプトを実行する場合など)。私は基本的に(Arduinoからの)データを(ローカルサーバーがホストする)Webページにプッシュする必要がありました。クライアントでデータをパブリッシュおよびサブスクライブできるMQTTプロトコルについて検索して見つけました(まさに私が望んでいたものです)。しかし、私が見つけているほとんどのチュートリアルは、完全にArduino(wifiシールド付き)または完全にesp8266のいずれかにあります。 私が知りたいのは、現在の構成と同じようにMQTTを使用できる方法があるということです。つまり、Arduinoを使用してすべての作業を行い、シリアル通信を使用します。MQTTのATコマンドだけでデータを公開します。 私のプロジェクトに関する追加情報はここに記載されています:スマートホームシステムで使用するテクノロジについて混乱
10 mqtt  esp8266 

1
Mosquitto MQTTクライアントは別のクライアントを強制的に切断できますか?
MQTTサーバーからクライアントを強制的に切断する必要がある場合(たとえば、なんらかの動作が正しくなく、正しく応答しない場合)に、MQTTクライアントがブローカーに何らかの方法でクライアントを切断するように指示する方法を知りました。 前の質問には、ちょうどあなたが殺したいクライアントと同じクライアントIDとの接続の可能性を強調したが、これは最高の状態で信頼できないようだと、私のニーズを満たす、より信頼性の高いオプションがあります場合、私は思ったんだけど: 許可されたクライアントが、クライアントIDによって他のクライアントをネットワークから切断できるようにします 理想的には、許可されていないクライアントが他のクライアントを切断するのを防ぎます(これにより、「信頼できる」クライアントだけが他のクライアントを切断できるようになります) そのような要件を満たす機能はありますか?
10 mqtt  mosquitto 

1
EMQはQoS 1/2メッセージをどのように保持しますか?
EMQ(アーランMQTTブローカー)が報告された「130万個の同時MQTT接続」と「分散、大規模スケーラブルで拡張性の高いMQTTメッセージ・ブローカー」である-それは潜在的に多数のクライアントが公開し、それを購読することができますので。一部のクライアントは常に切断されている可能性があります。 この質問としてMosquittoがQoS 1/2メッセージを格納するためのメモリを使い果たした場合はどうなりますか?蚊について尋ねます: MQTTでは、QoSの1又は2のメッセージがなければならない少なくとも一度配信される(QOS 2件のメッセージが配信されなければならない正確に 1回)。クライアントが接続されていない場合、ブローカーはクライアントがメッセージを受信する準備ができるまでメッセージを保存する必要があります。 では、EMQはどのように配信まで、つまりブローカーのリブートまたはメモリー制限に関してQoS 1/2メッセージを保持するのでしょうか。
10 mqtt  emq 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.