問題タブ [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.
python - mosquitto_pub は正常に動作しますが、paho.mqtt.client を使用して Mosquitto サーバーに接続できません
mosquitto を実行しているリモート サーバーがあります。このサーバーに接続して、mosquitto_pub と mosquitto_sub を使用してメッセージを交換できます。paho.mqtt.client でいくつかの python を使用して同じことを試みると、接続が得られません。スクリプトは実行し続けますが、on_connection フックは呼び出されません。ただし、同じスクリプトがローカルの mosquitto サーバーで問題なく動作します。
接続の問題の原因は何でしょうか? 何が起こっているのかについて、さらにフィードバックを得るにはどうすればよいですか? 助言がありますか?
編集:最小限のコード例を追加しました
EDIT 2:遊んでいる間、「localhost」を「test.mosquitto.org」に置き換えると、mosquitto_subOSError: [Errno 101] Network is unreachable
経由で接続しても問題はありませんが、
android - buildPath に設定されたライブラリの順序は重要ですか?
私はMQTT
とが初めてですpaho Libs for Android
。今日、以下に示すように簡単な接続の例を作成しようとしましたが、何が起こるかというとlogcat
、コードにエラーがないにもかかわらず、以下に投稿されたものからエラーメッセージが表示されますが、実行時にEclipseが言うcan not run the projects due to errors "which are not exist"
かアプリがクラッシュし、以下に投稿されたエラーログ。
また、からダウンロードしたプロジェクトにあるライブラリの写真を下に投稿しましたpaho website
。
私が欠けているものと私が間違っていたことを教えてください。
コード:
}
LogCat :
ピック
android - paho Android サービスでの java.lang.VerifyError
何日もの間、私は仕事をしようとしてきpaho android service
ました。ここからダウンロードし、ウェブサイトで提供されている手順に従ってGIT
内容を解凍しました。ここPaho Java Client
からzip形式のファイルとしてダウンロードしたものと、zip形式のファイルの内容について、フォルダー内に作成したフォルダーにコピーしました。libs
org.eclipse.paho.android.service
ここで、とフォルダーをpaho android service
含むを Eclipse にインポートすると、プロジェクトは感嘆符や赤い X マークでマークされませんが、アプリを実行すると、以下の出力が表示されます。それを解決するために、エラーに関連するいくつかの質問を確認しましたが、問題はまだ存在します。org.eclipse.paho.android.service
org.eclipse.paho.android.service.sample
org.eclipse.paho.android.service.test
logcat
java.lang.VerifyError
logcat :
android - MQTT を介した同期または非同期メッセージングが最初に呼び出されます
の基本を学ぶためにこのチュートリアルを読んPaho android Service API
でいます。テキストのどこかで、client.connect(context, callback
2 つのメソッドonSuccess()
とonFailure()
前述のように、この例では同期クライアントが使用されています (MqttAsyncClient ではなく MqttClient)。これは、接続などの要求がブロックされ、例外が返されるかスローされることを意味します。サーバーからメッセージを取得するためのポーリングまたは読み取りメソッドはありません。サーバーからのメッセージはいつでも到着する可能性があります。ライブラリーは、この動作を処理するためのコールバック・メカニズムを提供します。クライアントに登録された MqttCallback オブジェクト内のメソッドが適切に呼び出されます。MqttCallback は、別のクラスによって実装する必要があるインターフェースです...コールバック機能を有効にするには、コールバック オブジェクトをクライアントに登録します。これは、サーバーに接続する前に行うのが最も論理的です。
そして、私が言及した最後の2行を読んだ後、私は混乱しました。私が理解している限り、クライアントをカルバックに登録することの本質はconnectionLost,deliveryComplete,messageArrived
、サーバーの状態を「非同期的に」処理し、サーバーから読み取ることです。
さて、私の質問は、私が引用した最後の2行に関して、サーバー自体に接続する前にサーバーから状態を読み取るためにクライアントを登録するにはどうすればよいですか? つまり、「なぜ、「client.connect()」の前に「client.callback」を呼び出す必要があるのですか?」
誰でもこの点を明確にして説明してください。
android - MqttClientPersistence オブジェクトを宣言すると接続エラーが発生する
以下のコードでは、永続化されたデータ用のフォルダーを作成しようとしています。ご覧のとおり、私が作成private final String folder = "//temp";
したオブジェクトpersistence
. しかし、問題は、アプリを実行するとConnection Failed
、このメッセージが から表示されclient connection synchronous listener
、オブジェクトなしで接続するとpersistence
、すべてが正常に機能することです。
folder
変数を 間違って初期化しているか、間違って使用しMqttClientPersistence persistence
ていますか?
コード:
keep-alive - サーバーが切断され、LWT メッセージが表示されますか?
サーバーが の期間内にクライアントからメッセージを受信せず(1.5) * KeepAlivetime
、クライアントがPINGREQ
前述の期間内にメッセージを送信しなかった場合、サーバーはDISCONNECT
.
はいの場合、受信LWT
すべきではないメッセージが表示されるのはDISCONNECT
なぜですか?
mqtt - LWT 保持メッセージの受信を停止するには?
テストのために、アプリを使用してクライアントを作成し、実行しましたclean sessin = false
。setWill(WILL_TOPIC, WILL_MSG.getBytes(), 1, true);
後で、setWill(WILL_TOPIC, WILL_MSG.getBytes(), 1, false);
アプリを実行するときに設定すると、以前に関連付けられたメッセージを受け取りLWT
ます。それらの受信を停止するにはどうすればよいですか?
android - callBacklistener は 2 回呼び出されますか?
以下では、それを実行して意図的に WiFi をオフにすると、callBackclientCallBack.connectionLost
でメッセージがLog.d(TAG, "@connectionLost: MQTT Server connection lost");
2 回表示されます。また、再接続するとLog.i(TAG, "@onSuccess: Connection Successful.");
、client_1.connect
コールバックのメッセージが 1 回だけ表示されます。
カルバックからメッセージを2回受け取る理由を誰でも説明できますか?
コード
android - ブローカーは LWT メッセージを配信しませんか?
私は彼にフォローLWT topic
してもらい、WT message
そして、メッセージを公開するときに名前をtopic
付けて購読しsensor_0
ていますが、WiFiをオフにして再度オンにするとLWT messahe
、接続オプションで設定したものが表示されると思いますが、受信しません.
LWT
再接続してもメッセージが表示されないのはなぜですか?
コード: