mqtt-клиент в приложении Android 2.1 - PullRequest
2 голосов
/ 16 марта 2012

У меня проблемы с использованием fusesource mqtt-client-java1.4-uber-1.0 (в приложении для Android). когда я предоставляю неправильный IP-адрес или mqtt-брокер не работает на правильном IP-адресе, он предупреждает сообщение «Не удалось подключиться (обратный вызов)», но не «Не удалось подключиться (прослушиватель)». Когда я предоставляю правильный IP-адрес и брокер работает, оповещения вообще не появляются. Я полагаю, что слушатели не работают вообще, и каким-то образом обратный вызов успеха соединения не слишком велик. какие идеалы? Ниже полный код активности андроида.

Я использую эту версию mqtt-client: mqtt-client-java1.4-uber-1.0.jar Я также пытался использовать разные брокеры (серверы): 10000 * RSMB и Mosquitto

package racenet.mqtt;

import java.net.URISyntaxException;

import org.fusesource.hawtbuf.Buffer;
import org.fusesource.hawtbuf.UTF8Buffer;
import org.fusesource.mqtt.client.Callback;
import org.fusesource.mqtt.client.CallbackConnection;
import org.fusesource.mqtt.client.Listener;
import org.fusesource.mqtt.client.MQTT;

import racenet.mqtt.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;

public class MQTTActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MQTT mqtt = new MQTT();

        try {

            mqtt.setHost("tcp://proper-ip-here:1883");

        } catch (URISyntaxException e) {

            new AlertDialog.Builder(MQTTActivity.this)
                .setMessage("Could not set host")
                .setNeutralButton("OK", null)
                .show();
        }

        final CallbackConnection connection = mqtt.callbackConnection();
        connection.listener(new Listener() {

            public void onConnected() {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Connected (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onDisconnected() {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Disconnected (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onFailure(Throwable arg0) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Failure (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onPublish(UTF8Buffer arg0, Buffer arg1, Runnable arg2) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Publish (listener)")
                    .setNeutralButton("OK", null)
                    .show();
            }
        });

        connection.connect(new Callback<Void>() {

            public void onFailure(Throwable value) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Could not connect (callback)")
                    .setNeutralButton("OK", null)
                    .show();
            }

            public void onSuccess(Void v) {

                new AlertDialog.Builder(MQTTActivity.this)
                    .setMessage("Connected (callback)")
                    .setNeutralButton("OK", null)
                    .show();
            }
        });
    }
}

Ответы [ 2 ]

5 голосов
/ 28 марта 2012

В Eclipse теперь есть реализованная IBM реализация клиента MQTT в виде открытого исходного кода - http://git.eclipse.org/c/paho/

4 голосов
/ 14 апреля 2012

mqtt-client-java1.4-uber-1.0 просто дурацкая реализация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...