問題タブ [paho]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Paho MQTT cleanSession set to false yet not receiving messages
I was testing MQTT for a project. I am also able to receive messages on a topic to which my client had subscribed when the client is connected. I have set QoS to 1 and cleanSession is set to false. But I am unable to receive messages which were sent to the subscribed topic when my client connects again. In my application almost all the work is done by a helper service.
Here is my code
AndroidManifest.xml
MainActivity.java
MqttHelperService.java
I even checked this link With the clear session flag set to FALSE, I am missing the published values but could not find the error in my code
node.js - mqtt mosca pahojs 'ws://localhost:1884/mqtt' への WebSocket 接続に失敗しました/タイムアウト
ブローカ
client.html
私はブローカーを実行します
のような Web サーバーで client.html を呼び出すよりも
しばらくすると届きます
Firefox は、ws://localhost:1884/mqtt でサーバーへの接続を確立できません。this.socket = new WebSocket(wsurl, ["mqtt"]);
Chrome: 'ws://localhost:1884/mqtt' への WebSocket 接続に失敗しました: WebSocket を開くハンドシェイクがタイムアウトしました
どっちに転ぶかわからない(笑)
私を助けてくれませんか?
java - QoS = 1 で MQTT が非常に遅くなるのはなぜですか?
WiFi と MQTT プロトコルを介してロボットの群れを制御するアプリケーションを作成しようとしています。私のアプリケーションにとって十分に速いかどうかを測定するために、いくつかのテストを実行しました。平均 25 ~ 30 ミリ秒以内の制御ループ (PC からロボットへのメッセージの往復) が必要です。
2 台のマシンで実行される Paho Java クライアントを使用してアプリケーションを作成しました。topic1 でメッセージを受信すると、topic2 にパブリッシュします。Topic2 は 2 番目のマシンによってサブスクライブされ、次にトピック 1 にパブリッシュされます。
すべてのパブリッシングとサブスクライブが QoS 0 で行われた場合、ループ時間は平均で約 12 ミリ秒でした。ただし、ロボットに送信されたコマンドが常に宛先に到達することを保証するために、QoS 1 を使用したいと考えています。ループ時間をテストしたところ、平均で約 250ms でした。
時間の増加の原因は何ですか?私の理解では、送信エラーがなければ、交換されたパケット数は QoS1 で 2 倍になります (メッセージごとにブローカーからクライアントに送信される PUBACK があります。http://www.hivemq.com/mqtt-essentials-part-6 を参照してください)。 -mqtt-サービス品質レベル/ )。
この時間をどうにか短縮できないか?Mosquitto と Apache Apollo ブローカーを試しましたが、どちらも同じ結果を再現しました。
編集:
テスト手順を少し変更しました。現在、同じマシン上で実行されている mqtt クライアントの 2 つのインスタンスがあります。1 つはパブリッシャーとして、2 番目はサブスクライバーとして。パブリッシャーは、次のように 10 ミリ秒間隔で 1000 メッセージを送信します。
サブスクライバーはメッセージを待って時間を測定します:
ブローカー (デフォルト構成の mosquitto) は、同じローカル ネットワーク内の別のマシンで実行されます。私が達成した結果は、以前よりもさらに奇妙です。現在、QoS 1 のメッセージがサブスクライバに到達するのに約 8 ~ 9 ミリ秒かかります。QoS 2 では約 20ms です。ただし、QoS 0 では、平均を取得します。100ms から 250ms まで!エラーはテスト メソッドのどこかにあると思いますが、どこにあるのかわかりません。
java - QoS1 と QoS2 メッセージ - Java の Paho MQTT クライアントでの処理の違い
この記事を参考にして、QoS1 と QoS2 のメッセージの違いはわかると思いますが、両方を Paho MQTT クライアントとして扱う場合の違いはわかりません。
次のようなトピックにサブスクライブするとします。
そして、次のようなメッセージを公開しています。
現時点では、MqttCallback インターフェースを使用して、サブスクライバーに届くメッセージを処理しています。
オーバーライドする方法があります:
MqttMessage で isDuplicate() メソッドを見つけることができますが、true を返す mqttMessage がサブスクライバーが受信した最初のメッセージではないことをどのように確認できますか?
QoS1 の処理方法を示すソリューションを見つけることに非常に興味がありますが、ここで何かを明確にするすべての回答をいただければ幸いです。
クラクフからよろしく!
debian - Paho-mqtt.client は digital-ocean mqtt サーバーに接続できますが、サブスクライブできません
これで私を助けてください。私はこれに2日間を費やしましたが、成功しませんでした。
Paho-Mqtt python クライアントの例を使用しています。また、digitalocean debian サーバーに HiveMq mqtt サーバーがあります。Python のクライアント サンプル コードは、ラップトップまたは Linux Debian マシンで実行すると、digitalocean サーバーに接続してサブスクライブできます。しかし。これがBUTです。digitalocean サーバー (hivemq mqtt サーバーがある場所) でクライアントを実行すると、接続することしかできず、サブスクライブしません! localhost とサーバー IP の両方を使用しましたが、それでもうまくいきません。
ただし、digitalocean サーバー (hivemq mqtt サーバーと共に) で実行されている同じクライアント コードは、m2m.eclipse.org などの外部サーバーに正常に接続してサブスクライブできます。
サブスクライブではなく、接続していることをどのように知ることができますか? 接続コールバックでは RC:0 を返しますが、サブスクライブ コールバックでは何も返しません。(「Subscribe: 1」などを返す必要があります)
結論: Clinet は、サーバーと同じマシンで実行されている場合、接続できますが、サブスクライブできません。
python - Paho Mqtt クライアントでパブリッシュおよびサブスクライブする
ラズベリーパイにpaho mqttクライアントをインストールし、Androidアプリケーションとarduinoをブローカーに接続した後。アプリケーションまたはarduinoクライアントからメッセージを受信した後、このメッセージをこのクライアントに再発行したいたとえば、「OFF」を受け取った後に「ON」を受け取った場合、次の発行は「ON」「OFF」「ON」「OFF」になります「...または、「オン」または「オフ」にする必要があります
java - Paho クライアント MqttCallback を使用して messageArrived() で公開しようとしています
の着信メッセージへの応答を公開しようとしています messageArrived(...)
。しかし、発行がハングし、次の行: logOutgoingMessage(topic, message)
が呼び出されることはありません... 最後にデッドロックが発生し、クライアントが切断されます。
これが私のコードです: