<!DOCTYPE html><html><head><meta charset="utf-8" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="description" content="" /><meta name="author" content="Maxim Sokhatsky" /><title>NITRO</title><link rel="stylesheet" href="https://n2o.dev/blank.css?v=2" /></head><body><nav>
    <a href="https://n2o.dev/ua/">DEV</a>
    <a href="index.html">NITRO</a>
    <a href="#" style="background:#ededed;">N2O</a>
  <div class="dropdown">
    <a onclick="drop()" class="dropbtn">UA</a>
    <div id="dropdown" class="dropdown-content">
      <a href="https://n2o.dev/deps/n2o/man/ua/n2o_nitro.htm">UA</a>
      <a href="https://n2o.dev/deps/n2o/man/de/n2o_nitro.htm">DE</a>
      <a href="https://ws.n2o.space/man/n2o_nitro.htm">EN</a>
    </div>
  </div>
</nav><header>
    <a href="../index.html"><img src="https://openmoji.org/data/color/svg/1F525.svg" /></a>
    <h1>N2O</h1>
</header>
<main>
<article>
    <section>
        <h3>ВСТУП</h3>

        <p>Модуль <a href="https://github.com/synrc/nitro/blob/master/src/nitro_n2o.erl">nitro_n2o</a>
           містить реалізацію протоколу <a href="http://nitrogenproject.com/demos">Nitrogen Web Framework</a>
           у відповідності до вимог специфікації N2O.</p>

    </section>
    <section>
        <h3>INIT</h3>
        <p>Повідомлення init викликає функцію event(init) модуля сторінки.
           Існує два способи передати бінарне повідомлення INIT.
           Перший спосіб — закодований в BERT #init record з бінарним токеном,
           який, зазвичай, створюється n2o_session, передається в #io record
           як параметр даних та зберігається на клієнті в localStorage чи Key Chain.
           Клієнти з недійсними токенами реєструються та отримують нові токени.</p>
        <figure><code>
 -record(init, { token :: binary() }).
        </code></figure>
        <p>Другий спосіб — бінарна текстова версія повідомлення, &lt;&lt;"N2O,"&gt;&gt;
           що, зазвичай, працює для хостів зі здатністю до неформатованої бінарної
           передачі, таких, як протокол WebSockets.
           </p>
        <figure><code>
 &lt;&lt;"N2O,",Token/binary>>
        </code></figure>
        <p>Щоб детальніше дізнатись про протокол видачі токенів дивіться
           модуль <a href="n2o_session.htm">n2o_session</a>.</p>
    </section>
    <section>
        <h3>PICKLE</h3>
        <p>Повідомлення pickle надсилає на сервер заздалегідь підготовлене (за
           допомогою сервера) зашифроване повідомлення.
           Такі повідомлення містять #ev record з інформацією викликача (зашифровані).
           Зашифровані повідомлення можуть подовжувати термін придатності токена сесії
           за допомогою оновлення токена клієнта при кожному UI
           запиті (відстеження активності користувачів), для включення цього режиму
           змінна середовища <b>nitro_prolongate</b> додатку n2o повинна бути <b>true</b>.</p>
        <div>
        <figure><code>
 -record(pickle, { source  = [] :: [] | binary(),
                   pickled = [] :: [] | binary(),
                   args    = [] :: list({atom(),any()}) }).

 -record(ev,     { module  = [] :: [] | atom(),
                   msg     = [] :: any(),
                   trigger = [] :: [] | binary(),
                   name    = [] :: [] | binary() }).
        </code></figure>
        </div>
    </section>
    <section>
        <h3>DIRECT</h3>
        <p>Повідомлення direct надсилає дані без задіяння механізмів діалогу,
           сесії чи шифрування. Терм у полі data безпосередньо попадає в event
           функцію модуля-контроллеру сторінки.</p>
        <div>
        <figure><code>
 -record(direct, { data = [] :: any() }).
        </code></figure>
        </div>
    </section>
    <section>
        <h3>FLUSH</h3>
        <p>Повідомлення flush лише перенаправляє дані в сокет.</p>
        <div>
        <figure><code>
 -record(flush, { data = [] :: [] | list(#action{}) }).
        </code></figure>
        </div>
    </section>
    <section>

<p>Можливо, Ви також бажаєте почитати про:
<b>
<a href="n2o_heart.htm">n2o_heart</a>,
<a href="n2o_ftp.htm">n2o_ftp</a>
</b>.
</p>

    </section>
</article>
</main><footer>
    2005—2019 © Synrc Research Center
</footer>
<script>function drop(){document.getElementById("dropdown").classList.toggle("show");}</script>
</body></html>