打印 Mqtt 主题并选择一个订阅其中一个
Print Mqtt topics and Choose one to subscribe to one of them
我遇到了一个问题,这个问题是关于在 android 的多个文本视图中显示来自代理服务器的可用 mqtt 主题,然后选择其中一个来订阅主题
final MqttAndroidClient client =new MqttAndroidClient(getApplicationContext(),"tcp://iot.eclipse.org:1883","12d45454");
try {
client.connect(mqttConnectOptions, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken mqttToken) {
DisconnectedBufferOptions disconnectedBufferOptions = new DisconnectedBufferOptions();
disconnectedBufferOptions.setBufferEnabled(true);
disconnectedBufferOptions.setBufferSize(100);
disconnectedBufferOptions.setPersistBuffer(false);
disconnectedBufferOptions.setDeleteOldestMessages(false);
Log.i("ERROR ","Topic="+mqttToken.getTopics());
textview1.setText(mqttToken.getTopics()[0]);
}
首先说一下您使用的获取主题列表的方法的目的(根据您的代码):
Log.i("ERROR ","Topic="+mqttToken.getTopics());
上述方法 getTopics() 的目的不是为您提供 MQTT Broker 上可用主题的详尽列表。此方法 returns 与您的令牌关联的主题名称。如果你通过这个 Link 你会看到该方法在操作成功完成时被调用。此外,您可以查看 IMqttToken 的 java 文档。
也许您可以详细说明您的用例,以便听众可以帮助您,获取所有活动主题不应该是理想的解决方案。
我遇到了一个问题,这个问题是关于在 android 的多个文本视图中显示来自代理服务器的可用 mqtt 主题,然后选择其中一个来订阅主题
final MqttAndroidClient client =new MqttAndroidClient(getApplicationContext(),"tcp://iot.eclipse.org:1883","12d45454");
try {
client.connect(mqttConnectOptions, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken mqttToken) {
DisconnectedBufferOptions disconnectedBufferOptions = new DisconnectedBufferOptions();
disconnectedBufferOptions.setBufferEnabled(true);
disconnectedBufferOptions.setBufferSize(100);
disconnectedBufferOptions.setPersistBuffer(false);
disconnectedBufferOptions.setDeleteOldestMessages(false);
Log.i("ERROR ","Topic="+mqttToken.getTopics());
textview1.setText(mqttToken.getTopics()[0]);
}
首先说一下您使用的获取主题列表的方法的目的(根据您的代码):
Log.i("ERROR ","Topic="+mqttToken.getTopics());
上述方法 getTopics() 的目的不是为您提供 MQTT Broker 上可用主题的详尽列表。此方法 returns 与您的令牌关联的主题名称。如果你通过这个 Link 你会看到该方法在操作成功完成时被调用。此外,您可以查看 IMqttToken 的 java 文档。
也许您可以详细说明您的用例,以便听众可以帮助您,获取所有活动主题不应该是理想的解决方案。