Ejemplo n.º 1
0
    @Override
    protected Object doInBackground(Object... params) {

      log("create connection");
      String mqttConnSpec = "tcp://" + brokerHostName + "@" + MQTT_BROKER_PORT_NUM;
      // Create the client and connect
      try {
        mqttClient = MqttClient.createMqttClient(mqttConnSpec, MQTT_PERSISTENCE);

        String clientID = MQTT_CLIENT_ID + "/" + mPrefs.getString(PREF_DEVICE_ID, "");

        mqttClient.connect(clientID, MQTT_CLEAN_START, MQTT_KEEP_ALIVE);
        // register this client app has being able to receive messages
        mqttClient.registerSimpleHandler(this);
        // Subscribe to an initial topic, which is combination of client
        // ID
        // and device ID.
        initTopic = MQTT_CLIENT_ID + "/" + initTopic;
        subscribeToTopic(initTopic);
      } catch (MqttException e) {
        e.printStackTrace();
      }
      log("Connection established to " + brokerHostName + " on topic " + initTopic);

      // Save start time
      mStartTime = System.currentTimeMillis();
      // Star the keep-alives
      startKeepAlives();
      return null;
    }
Ejemplo n.º 2
0
  private synchronized void keepAlive() {
    try {
      // Send a keep alive, if there is a connection.
      if (mStarted == true && mConnection != null) {
        mConnection.sendKeepAlive();
      }
    } catch (MqttException e) {
      log("MqttException: " + (e.getMessage() != null ? e.getMessage() : "NULL"), e);

      mConnection.disconnect();
      mConnection = null;
      cancelReconnect();
    }
  }
Ejemplo n.º 3
0
  private synchronized void connect() {
    log("Connecting...");
    // fetch the device ID from the preferences.
    String deviceID = mPrefs.getString(PREF_DEVICE_ID, null);
    // Create a new connection only if the device id is not NULL
    if (deviceID == null) {
      log("Device ID not found.");
    } else {
      try {

        mConnection = new MQTTConnection(MQTT_HOST, deviceID);
      } catch (MqttException e) {
        // Schedule a reconnect, if we failed to connect
        log("MqttException: " + (e.getMessage() != null ? e.getMessage() : "NULL"));
        if (isNetworkAvailable()) {
          scheduleReconnect(mStartTime);
        }
      }
      setStarted(true);
    }
  }