Я разрабатываю интерфейс API REST, который в некоторых частях должен взаимодействовать с MQTT через клиентскую библиотеку Paho. В соответствии с проектом, Pāho клиент может использовать только один обратный вызов для каждого полученного сообщения:Рекомендации по обработке сообщений MQTT с библиотекой Java Paho
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) { }
}
Я борюсь в выяснении «правильный» способ обработки принятого сообщения и реагировать соответствующим образом - как бы я написать свой обратный вызов, избегая гигантский переключатель() на некоторых частях полезной нагрузки или темы?
Что такое пользовательская подписка на достаточное количество тем, что проблема с if/switch является проблемой? Вы должны сделать фильтрацию где-то – hardillb
Не возражаете против темы: мои сомнения все еще присутствуют при проверке некоторых данных о полезной нагрузке, а также –