一部の部分では、Pahoクライアント・ライブラリーを介してMQTTと対話する必要があるREST APIインターフェースを開発しています。デザインによって、PAHOクライアントは、メッセージごとに一つだけのコールバックを受信することができます:Paho JavaライブラリーでMQTTメッセージを処理するためのベスト・プラクティス
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
トピックについて気にしないでください:ペイロードのいくつかの情報をチェックするときにも疑問が残っています –