MQTT

ВСТУП

n2o_mqtt є екземпляром n2o_pi процесу. В N2O кількість таких екземплярів зазвичай дорівнює кількості ядер.

Існує два способи вбудовування N2O: перший полягає у виконанні протокольного циклу N2O під час процесу з'єднання (як в cowboy версії); другий — в створенні кільця n2o_pi процесів та обробці всіх запитів всередині цих процесів (як в MQTT версії). n2o_mqtt — це протокол таких процесів віртуальних вузлів.

ПРОТОКОЛ

Реагуючи на повідомлення ініціалізації init n2o_mqtt створює з'єднання з MQTT сервером. Після створення з'єднання, в #mqttc/2 він підписується на канал events.

events/+/:name/#

Після підписки всі повідомлення, що надсилаються в канал events, передаються в #publish/2, де цикл протоколу n2o_proto:info/3 вбудований у якості обробника цих повідомлень.

#publish { topic = [] :: binary(), message = [] :: binary()}. #mqttc { client :: pid(), status :: connected }.

Всі результати пересилаються в канал actions:

actions/:vsn/:module/:client

КОНФІГУРАЦІЯ

Сервісні воркери запускать MQTT клієнти в наступній конфігурації:

[{mqtt,[{host, "127.0.0.1"}, {client_id, Generated}, {clean_sess, false}, {logger, {console, error}}, {reconnect, 5}]}].

Цей модуль може бути пов'язаним з: n2o, n2o_pi, n2o_proto.