Я играю с MQTT и Android, но не могу подключить клиента к брокеру. Вот как выглядит код:
String clientId = MqttClient.generateClientId();
MqttAndroidClient client = new MqttAndroidClient(this, brokerIp, clientId);
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
Log.i(TAG, "connectionLost");
}
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
Log.i(TAG, "messageArrived");
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
Log.i(TAG, "deliveryComplete");
}
});
client.connect().setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Log.i(TAG, "Connection success");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Log.i(TAG, "Connection failed: ", exception);
}
});
Проблема в том, что ни один из обратных вызовов никогда не запускается. При запуске mosquitto в подробном режиме от этого клиента не поступают соединения, и, проверяя журнал, я не вижу никаких исключений.
Я пробовал локально и в облаке, и он не подключается ни к чему, в то время как клиент, который у меня есть на внутренней стороне, может подключаться к обоим, используя один и тот же хост и порт. Что мне не хватает?