ВСТУП
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}]}].