LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Коллега который работал, говорит, что MQTT это если устройствам надо отсылать телеметрию, а мне наоборот, устройствам отсылать команды.

Пипец, в каком колхозе вы работаете?

В MQTT клиент подписывается на топик и получает опубликованные в этом топике сообщения. Кто уже публикует эти сообщения – другой клиент или сам сервер – не суть важно.

Поэтому делается, например, так:

  • поднимается MQTT-шный брокер;
  • с одной стороны к этому брокеру подключается управляющая софтина (сервер в вашем понимании);
  • с другой стороны к этому же брокеру подключаются клиенты;
  • клиенты подписываются на топики (например, вида /clients/all/commands или clients/client-15-42/commands);
  • управляющая софтина публикует команду в неком топике и эта команда доставляется клиентам, которые подписаны на этот топик. Например, если все клиенты подписаны на /clients/all/commands и туда публикуется сообщение M, то все клиенты это сообщение и получат. Если же какой-то единственный клиент подписан на /clients/client-15-42/commands и сообщение K публикуется в этот тупик, то только один клиент получит данное сообщение.

В обратную сторону работает так же, только там подписчиком выступает сервер, а публикацией занимаются клиенты.

А коллеге своему матчасть посоветуйте подучить. Или хотя бы кругозор расширить. Понабирают войтишников по объявлению, а те потом городские легенды среди таких же распространяют.

Исходная версия eao197, :

Коллега который работал, говорит, что MQTT это если устройствам надо отсылать телеметрию, а мне наоборот, устройствам отсылать команды.

Пипец, в каком колхозе вы работаете?

В MQTT клиент подписывается на топик и получает опубликованные в этом топике сообщения. Кто уже публикует эти сообщения – другой клиент или сам сервер – не суть важно.

Поэтому делается, например, так:

  • поднимается MQTT-шный брокер;
  • с одной стороны к этому брокеру подключается управляющая софтина (сервер в вашем понимании);
  • с другой стороны к этому же брокеру подключаются клиенты;
  • клиенты подписываются на топики (например, вида /clients/all/commands или clients/client-15-42/commands);
  • управляющая софтина публикует команду в неком топике и эта команда доставляется клиентам, которые подписаны на этот топик. Например, если все клиенты подписаны на /clients/all/commands и туда публикуется сообщение M, то все клиенты это сообщение и получат. Если же какой-то клиент подписан на /clients/client-15-42/commands и сообщение K публикуется в этот тупик, то только один клиент получит данное сообщение.

В обратную сторону работает так же, только там подписчиком выступает сервер, а публикацией занимаются клиенты.

А коллеге своему матчасть посоветуйте подучить. Или хотя бы кругозор расширить. Понабирают войтишников по объявлению, а те потом городские легенды среди таких же распространяют.