PROTO

ВСТУП

N2O, як вбудовуваний фреймворк, надає два способи входу (API) в протокольний цикл.

API

Цикл протоколу n2o_proto сумісний з cowboy та emqttd версіями N2O. Головна мета цього API — вбудувати N2O у вашу функціональну кінцеву точку. В інших випадках він викликається автоматично за допомогою конфігурації.

stream({ text | binary, binary() }, term(), term()) -> #reply{}.

Функція stream призначена для cowboy версії n2o.

info(term(), term(), term()) -> #reply{}.

Функція info призначена для emqttd версії n2o.

push(term(), term(), term(), term(), term()) -> #reply{}.

Обробка ланцюжка бінарних протоколів без фільтрації. Ви можете перехоплювати всі повідомлення з stream/3 та info/3, встановивши функцію для параметру filter в sys.config.

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

[{n2o,[{protocols,[n2o_nitro]}, {filter,{n2o_proto,push}}]}].

РЕАЛІЗАЦІЯ

nop(R,S) -> {reply,{binary,<<>>},R,S}. reply(M,R,S) -> {reply,M,R,S}. push(_,R,S,[],_) -> nop(R,S); push(M,R,S,[H|T],Acc) -> case H:info(M,R,S) of {unknown,_,_,_} -> push(M,R,S,T,Acc); {reply,M1,R1,S1} -> reply(M1,R1,S1); A -> push(M,R,S,T,[A|Acc]) end.

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