comparison xml/ru/docs/stream/ngx_stream_js_module.xml @ 2878:fd8ec06ceafa

Improved descriptions of js_access, js_filter, js_preread.
author Yaroslav Zhuravlev <yar@nginx.com>
date Mon, 08 Aug 2022 16:29:42 +0100
parents a3aee2697d4e
children 986e1f930e3b
comparison
equal deleted inserted replaced
2877:0280b6c71d38 2878:fd8ec06ceafa
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> 7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8 8
9 <module name="Модуль ngx_stream_js_module" 9 <module name="Модуль ngx_stream_js_module"
10 link="/ru/docs/stream/ngx_stream_js_module.html" 10 link="/ru/docs/stream/ngx_stream_js_module.html"
11 lang="ru" 11 lang="ru"
12 rev="31"> 12 rev="32">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 Модуль <literal>ngx_stream_js_module</literal> позволяет задавать 17 Модуль <literal>ngx_stream_js_module</literal> позволяет задавать
140 <link doc="stream_processing.xml" id="access_phase">access</link>-фазе. 140 <link doc="stream_processing.xml" id="access_phase">access</link>-фазе.
141 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link> 141 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
142 можно ссылаться на функцию модуля. 142 можно ссылаться на функцию модуля.
143 </para> 143 </para>
144 144
145 <para>
146 Функция вызывается однократно при первом достижении сессией
147 <link doc="stream_processing.xml" id="access_phase">access</link>-фазы.
148 Функция вызывается со следующими аргументами:
149
150 <list type="tag">
151 <tag-name><literal>s</literal></tag-name>
152 <tag-desc>
153 объект <link doc="../njs/reference.xml" id="stream">stream-сессии</link>
154 </tag-desc>
155
156 </list>
157 </para>
158
159 <para>
160 В этой фазе может происходить инициализация,
161 также при помощи метода
162 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
163 может регистрироваться вызов
164 для каждого входящего блока данных пока не будет вызван один из методов:
165 <link doc="../njs/reference.xml" id="s_done"><literal>s.done()</literal></link>
166 <link doc="../njs/reference.xml" id="s_decline"><literal>s.decline()</literal></link>,
167 <link doc="../njs/reference.xml" id="s_allow"><literal>s.allow()</literal></link>.
168 При вызове любого из этих методов обработка сессии
169 переходит на <link doc="stream_processing.xml">следующую фазу</link>
170 и все текущие вызовы
171 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
172 сбрасываются.
173 </para>
174
175 <para>
176 <note>
177 Так как обработчик <literal>js_access</literal>
178 должен сразу возвращать результат,
179 то поддерживаются только синхронные операции.
180 Таким образом, асинхронные операции, например
181 <link doc="../njs/reference.xml" id="ngx_fetch"><literal>ngx.fetch()</literal></link>
182 или
183 <link doc="../njs/reference.xml" id="settimeout"><literal>setTimeout()</literal></link>,
184 не поддерживаются.
185 </note>
186 </para>
187
145 </directive> 188 </directive>
146 189
147 190
148 <directive name="js_fetch_buffer_size"> 191 <directive name="js_fetch_buffer_size">
149 <syntax><value>размер</value></syntax> 192 <syntax><value>размер</value></syntax>
290 333
291 <para> 334 <para>
292 Задаёт фильтр данных. 335 Задаёт фильтр данных.
293 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link> 336 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
294 можно ссылаться на функцию модуля. 337 можно ссылаться на функцию модуля.
338 Функция фильтра вызывается однократно при первом достижении сессией
339 <link doc="stream_processing.xml" id="content_phase">content</link>-фазы.
340 </para>
341
342 <para>
343 Функция фильтра вызывается со следующими аргументами:
344 <list type="tag">
345 <tag-name><literal>s</literal></tag-name>
346 <tag-desc>
347 объект <link doc="../njs/reference.xml" id="stream">stream-сессии</link>
348 </tag-desc>
349
350 </list>
351 </para>
352
353 <para>
354 В этой фазе может происходить инициализация,
355 также при помощи метода
356 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
357 может регистрироваться вызов
358 для каждого входящего блока данных.
359 Для отмены регистрации вызова и отмены фильтра
360 можно использовать метод
361 <link doc="../njs/reference.xml" id="s_off"><literal>s.off()</literal></link>.
362 </para>
363
364 <para>
365 <note>
366 Так как обработчик <literal>js_filter</literal>
367 должен сразу возвращать результат,
368 то поддерживаются только синхронные операции.
369 Таким образом, асинхронные операции, например
370 <link doc="../njs/reference.xml" id="ngx_fetch"><literal>ngx.fetch()</literal></link>
371 или
372 <link doc="../njs/reference.xml" id="settimeout"><literal>setTimeout()</literal></link>,
373 не поддерживаются.
374 </note>
295 </para> 375 </para>
296 376
297 </directive> 377 </directive>
298 378
299 379
372 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазе. 452 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазе.
373 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link> 453 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
374 можно ссылаться на функцию модуля. 454 можно ссылаться на функцию модуля.
375 </para> 455 </para>
376 456
457 <para>
458 Функция вызывается однократно при первом достижении сессией
459 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазы.
460 Функция вызывается со следующими аргументами:
461
462 <list type="tag">
463 <tag-name><literal>s</literal></tag-name>
464 <tag-desc>
465 объект <link doc="../njs/reference.xml" id="stream">stream-сессии</link>
466 </tag-desc>
467
468 </list>
469 </para>
470
471 <para>
472 В этой фазе может происходить инициализация,
473 также при помощи метода
474 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
475 может регистрироваться вызов
476 для каждого входящего блока данных пока не будет вызван один из методов:
477 <link doc="../njs/reference.xml" id="s_done"><literal>s.done()</literal></link>
478 <link doc="../njs/reference.xml" id="s_decline"><literal>s.decline()</literal></link>,
479 <link doc="../njs/reference.xml" id="s_allow"><literal>s.allow()</literal></link>.
480 При вызове любого из этих методов обработка сессии
481 переходит на <link doc="stream_processing.xml">следующую фазу</link>
482 и все текущие вызовы
483 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
484 сбрасываются.
485 </para>
486
487 <para>
488 <note>
489 Так как обработчик <literal>js_preread</literal>
490 должен сразу возвращать результат,
491 то поддерживаются только синхронные операции.
492 Таким образом, асинхронные операции, например
493 <link doc="../njs/reference.xml" id="ngx_fetch"><literal>ngx.fetch()</literal></link>
494 или
495 <link doc="../njs/reference.xml" id="settimeout"><literal>setTimeout()</literal></link>,
496 не поддерживаются.
497 Тем не менее асинхронные операции поддерживаются в вызовах
498 <link doc="../njs/reference.xml" id="s_on"><literal>s.on()</literal></link>
499 в
500 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазе.
501 Подробнее см.
502 <link url="https://github.com/nginx/njs-examples#authorizing-connections-using-ngx-fetch-as-auth-request-stream-auth-request">пример</link>.
503 </note>
504 </para>
505
377 </directive> 506 </directive>
378 507
379 508
380 <directive name="js_path"> 509 <directive name="js_path">
381 <syntax> 510 <syntax>
422 551
423 <para> 552 <para>
424 <note> 553 <note>
425 Так как обработчик <literal>js_set</literal> 554 Так как обработчик <literal>js_set</literal>
426 должен сразу возвращать результат, 555 должен сразу возвращать результат,
427 то поддерживаются только синхронные вызовы. 556 то поддерживаются только синхронные операции.
428 Таким образом, асинхронные вызовы, например 557 Таким образом, асинхронные операции, например
429 <link doc="../njs/reference.xml" id="ngx_fetch">ngx.fetch()</link> 558 <link doc="../njs/reference.xml" id="ngx_fetch"><literal>ngx.fetch()</literal></link>
430 или 559 или
431 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link>, 560 <link doc="../njs/reference.xml" id="settimeout"><literal>setTimeout()</literal></link>,
432 не поддерживаются. 561 не поддерживаются.
433 </note> 562 </note>
434 </para> 563 </para>
435 564
436 </directive> 565 </directive>