static String[] meandgroup = new String[]{"timentask/c/u000000000005", "timentask/c/u0000000GRP85", "timentask/c/u000000GRP107", "timentask/c/u0000000GRP84", "timentask/c/u000000GRP100"};
public static List<MqttClient> mqttConnect(Object topicId) {
try {
mqttClient = new ArrayList<MqttClient>();
for (int i = 0; i < meandgroup.length; i++) {
//if (mqttClient.get(i) == null || !mqttClient.get(i).isConnected()){
if (!globalData.GlobalDataSetGet.MQTT_SERVER_HOST_NAME.equals("") && !globalData.GlobalDataSetGet.MQTT_SERVER_USER_NAME.equals("")) {
String topicName = meandgroup[i];
mqttClient.add(MqttMgr.subscriber(globalData.GlobalDataSetGet.MQTT_SERVER_HOST_NAME,
globalData.GlobalDataSetGet.MQTT_SERVER_PORT_NUMBER, globalData.GlobalDataSetGet.MQTT_SERVER_USER_NAME,
globalData.GlobalDataSetGet.MQTT_SERVER_USER_PASSWORD, Constants.MQTT_CONNECTION_KEEP_ALIVE_SECS, topicName, "client" + globalData.GlobalDataSetGet.getUserIdValue, new ChatPaneWrite()));
}
}
} catch (MqttException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return mqttClient;
}
答えて
MQTTではトピックをワイルドカードでサブスクライブすることができます。つまり、すべてのトピックをactullyで購読する必要はありません。 "timentask/c/u000000000005", "timentask/c/u0000000GRP85"
代わりに、"timentask/c/#"
あなたが各サブスクリプションのための新しいMQTTクライアントを作成しようとしているように見えます
これを行うと、mqtt chat server !!!!!!からのすべての受信メッセージを公開しています。私のことを理解する?私はtimentask/c/a/u000000000005、timentask/c/b/u000000000005とtimentask/c/c/u000000000005これらの3つだけをtimentask/c/a/u000000000005にtimentask/c/a/ –
Amazon MQTTクラウドサーバにはn個のトピックがあり、動的5トピックとコールバックの接続/購読を試しています。誰がこの5のトピックを公開していますか。 –
に加入し、これはおそらく、ほとんどのアプリケーションのための非常に不必要です。 1つのクライアントを使用したほうがいいかもしれませんし、トピック配列( subscribe(String[] topicFilters, int[] qos)のように)を使って購読してください。
mqttAsyncClient.subscribe(["/topic1", "/topic2", "/topic3"], [0,1,2]);
任意のメッセージがあなたのMqttCallbackに配信されている場合は、メッセージがに出版されたという話題も提供されますので、あなたはまだメッセージがどこから来たのか伝えることができるとルートそれにできるようになりますそれに応じて。
MqttException(0) - 接続が失われた(32109) - mqttconfig.MqttMgr.getMqttClientでjava.io.EOFException \t(MqttMgr.java:91)mqttconfig.MqttMgr.subscriberで \t(MqttMgr.java:35) \tでmqttconfig.MqttUtil.mqttConnect(MqttUtil.java:38) \t at LogIn $ 49 $ 4.doInBackground(LogIn.java:2003) \t LogIn $ 49 $ 4.doInBackground(LogIn.java:1999) –
あなたは何をしようとしているのか、何が動作していないのかを正確に説明する必要があります – hardillb
JavaでPAHOを使用して複数のトピックと複数のMqttCallbackを購読する方法 –
Amazon MQTTクラウドサーバにはn個のトピックがあります。ダイナミックな5トピックと私のコールバック。誰がこの5のトピックを公開していますか。 –