私のネットワークには、1883(mqtt)でリッスンしているActiveMQブローカがあります。単純なJavaアプリケーションとmqtt-client-0.4.0.jarライブラリを使用してそのブローカに接続すると、すべてが動作します。Paho Mqtt Androidがブローカに接続すると失敗する(32103)
今Androidデバイスでそのブローカーに接続します。残念ながら、私は成功した接続を得るためにそれを管理することはできません。
03-23 11:08:15.679 24572-24572/com.my.package E/WorkerMQTT: onFailure: Unable to connect to server (32103) - java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.687 24572-24572/com.my.package W/System.err: Unable to connect to server (32103) - java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err: at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:79)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err: at org.eclipse.paho.client.mqttv3.internal.ClientComms$ConnectBG.run(ClientComms.java:590)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err: at java.lang.Thread.run(Thread.java:856)
03-23 11:08:15.695 24572-24572/com.my.package W/System.err: Caused by: java.net.ConnectException: failed to connect to /192.192.192.10 (port 1883) after 30000ms: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at libcore.io.IoBridge.isConnected(IoBridge.java:224)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:112)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at java.net.Socket.connect(Socket.java:842)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at org.eclipse.paho.client.mqttv3.internal.TCPNetworkModule.start(TCPNetworkModule.java:70)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: ... 2 more
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: Caused by: libcore.io.ErrnoException: isConnected failed: ENETUNREACH (Network is unreachable)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: at libcore.io.IoBridge.isConnected(IoBridge.java:208)
03-23 11:08:15.703 24572-24572/com.my.package W/System.err: ... 8 more
私が使用してMqttWorker extends Thread{
を呼び出すAndroidのサービスだ:私は常に、次のエラーを取得しています。また
ライブラリとして私が使用しています:
compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
exclude module: 'support-v4'
}
を私の労働者の次のコード:
@Override
public void run() {
String clientId = "AndroidSub_7";
try {
this.client =
new MqttAndroidClient(this.context, "tcp://192.192.192.10:1883", clientId);
this.options = new MqttConnectOptions();
this.options.setWill("clients/clienterrors", "crashed".getBytes(),2,true); // handle uncleanly closed subscribers
this.client.setCallback(new ClientCallbacks()); // set new callbacks
this.client.connect(options);
IMqttToken conToken;
conToken = client.connect(options, this.context, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Log.d(TAG, "onSuccess");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Log.e(TAG, "onFailure: " + exception);
exception.printStackTrace();
}
});
} catch (MqttException e) {
Log.e(TAG,"Connection to broker failed:" + e);
}
}
は、私がこれまで試したどのような:
- 使用していないことを確認しましたループバックアドレス(多くのスレッドはこれについてです)
- 私はhav e
AndroidManifest.xml
WAKE_LOCK /INTERNET/WRITE_EXTERNAL_STORAGE/ACCESS_NETWORK_STATE
- a socketを使用してポートに接続できるかどうかを確認する簡単なスレッドクラスを作成しました。それは成功した。
- 私が
MqttAndroidClient
またはMqttClient
を使用しているかどうかは関係ありません。エラーは同じです。
誰かが私を助けてくれることを願っています。私はこれを解決するためのアイデアが不足しています。
これは本当のAndroid搭載端末ですか、エミュレータですか? – hardillb
ホストへの経路がないというエラーは、デバイス/エミュレータが接続されたネットワークがブローカに到達する手段がないことを意味します。ネットワークの設定(ブローカーのホストはどこにあり、クライアントはどのネットワークに接続されていますか)の詳細をお知らせください – hardillb