protected void restoreDurableSubs(List<SubscriptionInfo> subs) { try { for (SubscriptionInfo sub : subs) { String name = sub.getSubcriptionName(); String[] split = name.split(":", 2); QoS qoS = QoS.valueOf(split[0]); onSubscribe(new Topic(split[1], qoS)); // mark this durable subscription as restored by Broker restoredDurableSubs.add(MQTTProtocolSupport.convertMQTTToActiveMQ(split[1])); } } catch (IOException e) { LOG.warn("Could not restore the MQTT durable subs.", e); } }
protected void restoreDurableSubs(List<SubscriptionInfo> subs) { try { for (SubscriptionInfo sub : subs) { String name = sub.getSubcriptionName(); String[] split = name.split(":", 2); QoS qoS = QoS.valueOf(split[0]); onSubscribe(new Topic(split[1], qoS)); // mark this durable subscription as restored by Broker restoredDurableSubs.add(MQTTProtocolSupport.convertMQTTToActiveMQ(split[1])); } } catch (IOException e) { LOG.warn("Could not restore the MQTT durable subs.", e); } }
protected void restoreDurableSubs(List<SubscriptionInfo> subs) { try { for (SubscriptionInfo sub : subs) { String name = sub.getSubcriptionName(); String[] split = name.split(":", 2); QoS qoS = QoS.valueOf(split[0]); onSubscribe(new Topic(split[1], qoS)); // mark this durable subscription as restored by Broker restoredDurableSubs.add(MQTTProtocolSupport.convertMQTTToActiveMQ(split[1])); } } catch (IOException e) { LOG.warn("Could not restore the MQTT durable subs.", e); } }
@Override public Serializable doSend(Message message, MeasurementUnit measurementUnit) throws Exception { String response = null; mqttConnection.publish(topicName, message.getPayload().toString().getBytes(Utils.getDefaultEncoding()), QoS.valueOf(qos.toUpperCase()), false); if (isResponseExpected) { mqttResponse = mqttResponseConnection.receive(); if (mqttResponse != null) { response = new String(mqttResponse.getPayload(), Utils.getDefaultEncoding()); } } return response; }
private void restoreDurableQueue(List<ActiveMQQueue> queues) { try { for (ActiveMQQueue queue : queues) { String name = queue.getPhysicalName().substring(VIRTUALTOPIC_CONSUMER_PREFIX.length()); StringTokenizer tokenizer = new StringTokenizer(name); tokenizer.nextToken(":."); String qosString = tokenizer.nextToken(); tokenizer.nextToken(); String topicName = convertActiveMQToMQTT(tokenizer.nextToken("").substring(1)); QoS qoS = QoS.valueOf(qosString); LOG.trace("Restoring queue subscription: {}:{}", topicName, qoS); ConsumerInfo consumerInfo = new ConsumerInfo(getNextConsumerId()); consumerInfo.setDestination(queue); consumerInfo.setPrefetchSize(ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH); if (protocol.getActiveMQSubscriptionPrefetch() > 0) { consumerInfo.setPrefetchSize(protocol.getActiveMQSubscriptionPrefetch()); } consumerInfo.setRetroactive(true); consumerInfo.setDispatchAsync(true); doSubscribe(consumerInfo, topicName, qoS); // mark this durable subscription as restored by Broker restoredQueues.add(queue); } } catch (IOException e) { LOG.warn("Could not restore the MQTT queue subscriptions.", e); } }
private void restoreDurableQueue(List<ActiveMQQueue> queues) { try { for (ActiveMQQueue queue : queues) { String name = queue.getPhysicalName().substring(VIRTUALTOPIC_CONSUMER_PREFIX.length()); StringTokenizer tokenizer = new StringTokenizer(name); tokenizer.nextToken(":."); String qosString = tokenizer.nextToken(); tokenizer.nextToken(); String topicName = convertActiveMQToMQTT(tokenizer.nextToken("").substring(1)); QoS qoS = QoS.valueOf(qosString); LOG.trace("Restoring queue subscription: {}:{}", topicName, qoS); ConsumerInfo consumerInfo = new ConsumerInfo(getNextConsumerId()); consumerInfo.setDestination(queue); consumerInfo.setPrefetchSize(ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH); if (protocol.getActiveMQSubscriptionPrefetch() > 0) { consumerInfo.setPrefetchSize(protocol.getActiveMQSubscriptionPrefetch()); } consumerInfo.setRetroactive(true); consumerInfo.setDispatchAsync(true); doSubscribe(consumerInfo, topicName, qoS); // mark this durable subscription as restored by Broker restoredQueues.add(queue); } } catch (IOException e) { LOG.warn("Could not restore the MQTT queue subscriptions.", e); } }
private void restoreDurableQueue(List<ActiveMQQueue> queues) { try { for (ActiveMQQueue queue : queues) { String name = queue.getPhysicalName().substring(VIRTUALTOPIC_CONSUMER_PREFIX.length()); StringTokenizer tokenizer = new StringTokenizer(name); tokenizer.nextToken(":."); String qosString = tokenizer.nextToken(); tokenizer.nextToken(); String topicName = convertActiveMQToMQTT(tokenizer.nextToken("").substring(1)); QoS qoS = QoS.valueOf(qosString); LOG.trace("Restoring queue subscription: {}:{}", topicName, qoS); ConsumerInfo consumerInfo = new ConsumerInfo(getNextConsumerId()); consumerInfo.setDestination(queue); consumerInfo.setPrefetchSize(ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH); if (protocol.getActiveMQSubscriptionPrefetch() > 0) { consumerInfo.setPrefetchSize(protocol.getActiveMQSubscriptionPrefetch()); } consumerInfo.setRetroactive(true); consumerInfo.setDispatchAsync(true); doSubscribe(consumerInfo, topicName, qoS); // mark this durable subscription as restored by Broker restoredQueues.add(queue); } } catch (IOException e) { LOG.warn("Could not restore the MQTT queue subscriptions.", e); } }
mqttResponseConnection = mqttConnection; final Topic[] responseTopic = { new Topic(responseTopicName, QoS.valueOf(responseQos)) }; mqttResponseConnection.subscribe(responseTopic);
connection.connect(); connection.publish(topic, topic.getBytes(), QoS.EXACTLY_ONCE, true); connection.subscribe(new Topic[]{new Topic(topic, QoS.valueOf(topic))});