Ich entwickle eine REST-API-Schnittstelle, die in einigen Teilen mit MQTT über die Paho-Client-Bibliothek interagieren muss. Durch die Konstruktion kann Paho Client nur ein Rückruf für jede Nachricht empfangen:Best Practices beim Umgang mit MQTT-Nachrichten mit der Paho Java-Bibliothek
mqttClient = new MqttClient(MQTT_ADDRESS, MQTT_CLIENT_ID);
mqttClient.setCallback(new MqttCallbackImpl());
...
private static class MqttCallbackImpl implements MqttCallback {
@Override
public void connectionLost(Throwable cause) { }
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
switch(topic) {
// Endless list of cases...
}
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) { }
}
Ich kämpfe den „richtigen“ Weg, herauszufinden, die empfangene Nachricht und entsprechend reagieren zu verarbeiten - wie würde ich meinen Rückruf schreiben durch die Vermeidung von eine gigantische switch() auf einige Teile der Nutzlast oder das Thema?
In welchem Usecase haben Sie genug Themen abonniert, dass eine If/Switch-Anweisung ein Problem darstellt? Sie müssen die Filterung irgendwo vornehmen – hardillb
Haben Sie nichts gegen das Thema: meine Zweifel sind immer noch vorhanden, wenn Sie einige Informationen über die Nutzlast sowie –