Пароли разные и я могу посмотреть опубликованные сообщения?
В приведенном ниже фрагменте кода я объявляю username
а также passqord
для подписки.
private final String userName = "user_1";
private final char[] password = "pass".toCharArray();
....
....
final MqttAndroidClient client_1 = new MqttAndroidClient(getApplicationContext(), serverURI,
clientID, persistenceDataDir, Ack.AUTO_ACK);
MqttConnectOptions opts = new MqttConnectOptions();
opts.setCleanSession(false);
opts.setWill(WILL_TOPIC, WILL_MSG.getBytes(), QoS, false);
opts.setKeepAliveInterval(keepAliveInterval);
opts.setUserName(userName);
opts.setPassword(password);
Я установил соединение из приложения с clean session = false
а также client ID = 1
без ввода пароля и имени пользователя, и я продолжал публиковать (от ПК до посредника) значения темы, на которую я подписан (от приложения до посредника).
Позже в subscribe
В настройках подключения я установил пароль и имя пользователя, но не указал имя пользователя и пароль. publish
сообщение и повторно запустите p. что происходит, я получил обновленные опубликованные значения темы, на которую я подписан.
После этого в publish
я указал неправильное имя пользователя и пароль и подписался на одну и ту же тему, и когда я запускаю приложение, я получаю значения как обычно.
Я неправильно использую пароль и имя пользователя?
На заметку: я пробовал ту же процедуру с разными clientID
и я получаю опубликованные значения даже с неправильным паролем.
1 ответ
Вам необходимо настроить файл acl и файл паролей, чтобы имена пользователей и пароли управляли доступом к темам.
Пожалуйста, прочитайте справочные страницы mosqitto.conf и mosquitto_passwd для получения подробной информации о формате обоих этих файлов.