私の目標は、2台のAndroidデバイス間のピアツーピア接続を確立することです。この目標を達成するために、私はプロトコルmqttを選択しました。 最初のデバイスでブローカーを開始し、最初のデバイスに接続する2番目のブローカーを開始したいとします。私はこの方法でブローカーを作成します。デバイスをmqttブローカーとして使用するにはどうすればよいですか?
私は、サーバーを作成しますが、デフォルトURIがTCPであるその後のGradleへ
dependencies {
compile 'io.moquette:moquette-netty-parser:0.8.1'
compile 'io.moquette:moquette-broker:0.8.1'
compile 'io.moquette:moquette-parser-commons:0.8.1'}
をこれらの依存関係を追加しました:// localhostを:1883そう第2のデバイスは、私は接続することができます両方のデバイスが同じwi-fiポイントに接続されている場合にのみ、このブローカーに送信します。
broker = new Server();
try {
MemoryConfig memoryConfig = new MemoryConfig(new Properties());
memoryConfig.setProperty(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME,
Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator
+ BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME);
broker.startServer(memoryConfig);
} catch (IOException e) {
e.printStackTrace();
}
そして私は、私はデバイスがWi-Fiは異なる点に接続されている場合でも、ブローカーに接続することができまたは3G/4Gを使用したいアンドロイド
compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
ためPAHOライブラリを使用します。
私は正直に数日間解決策を見つけようとしましたが、成功しませんでした。私は本当にこれを達成する方法を知らない。 したがって、2つの質問があります。私がやりたいことは可能でしょうか?そしてどうやって?
MQTT接続については、この例を参照してください。 https://stackoverflow.com/questions/43038597/android-studio-mqtt-not-connecting?answertab=active#tab-topこの例では、 'Activity'で接続アクションを実行しますが、' Service' ' –