Как изменить автоматически сгенерированный идентификатор в комаре? - PullRequest
0 голосов
/ 16 апреля 2020

Я успешно установил MOSQUITTO Broker на моем Raspberry Pi 2, и я отправляю сообщения между nord red и mosquitto, и я хочу изменить идентификатор клиента, сгенерированный брокером, после того, как клиент подключился, это мое файл conf:

pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
password_file /etc/mosquitto/pwfile
allow_anonymous false
#clientid_prefixes target-
max_keepalive 60
allow_zero_length_clientid true
auto_id_prefix  auto- target-

После прочтения Документации Они сказали, что вам нужно всего лишь добавить в файл conf clititi_prefixes prefix , но это не помогло?

вот логи брокера:

Sending CONNACK to mqtt_f58c6e8c.3778b (0, 0)
1587044259: Received SUBSCRIBE from mqtt_f58c6e8c.3778b
1587044259: xxxxx/# (QoS 2)
1587044259:mqtt_f58c6e8c.3778b  // this need to be changed // 
1587044259: Sending SUBACK to mqtt_f58c6e8c.3778b

1 Ответ

1 голос
/ 16 апреля 2020

Этот clientID не генерируется брокером, он генерируется библиотекой MQTT js, используемой Node-RED для своих узлов MQTT.

Часть после _ собирается быть идентификатором внутреннего узла Node-RED для узла конфигурации посредника.

Вы можете установить clientID в настройках посредника, где вы устанавливаете IP-адрес посредника.

auto_id_prefix используется только в том случае, если брокер генерирует clientID для клиентов, которые не отправили один с пакетом подключения (это также, когда allow_zero_length_clientid также имеет значение true). В этом случае этого не происходит, потому что Node-RED всегда отправляет clientID.

Параметр clientid_prefixes ограничит доступ только тем клиентам, которые имеют соответствующий префикс. Поэтому, если вы установите это значение на clientid_prefixes target-, вам придется вручную установить clientID в Node-RED с префиксом target-, чтобы он мог подключаться.

...