Node-RED:Библиотеки/node-red/Split: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
 
(не показаны 3 промежуточные версии этого же участника)
Строка 5: Строка 5:


=Нода «Split»=
=Нода «Split»=
[[Файл:Nodered node split.PNG|center]]


Дробит сообщение на серию сообщений.
Дробит сообщение на серию сообщений.
Строка 45: Строка 47:
<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}
[[Категория:Нода]]
[[Категория:Нода]]
[[Категория:Нода Node-RED]]
[[Категория:Нода Node-RED]]
Строка 51: Строка 54:
[[Категория:Нода модуля node-red]]
[[Категория:Нода модуля node-red]]
[[Категория:Нода node-red]]
[[Категория:Нода node-red]]
{{ИнфоОСтр
|Название=Нода «Split»
|Метки=node split, node-red split, split node, split node-red, нода split,split нода
|Описание=
[[Файл:Nodered node split.PNG|center]]
Дробит сообщение на серию сообщений.
}}
{{SEO
|Заголовок статьи=Node-RED:Нода «Split» / Онлайн справочник - wikihandbk.com
|Ключевые слова=node split, node-red split, split node, split node-red, нода split,split нода
|Описание статьи=Дробит сообщение на серию сообщений.
|Изображение статьи для Open Graph=http://wikihandbk.com/ruwiki/images/9/91/Nodered_node_split.PNG
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Node-RED:Библиотеки/node-red/Split</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki></nowiki>
|Высота изображения статьи для schemaNewsArticle=
|Ширина изображения статьи для schemaNewsArticle=
|Дата публикации для schemaNewsArticle=2019-05-21
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}

Текущая версия от 18:19, 6 мая 2022

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Нода «Split»

Дробит сообщение на серию сообщений.

Свойства присылаемого сообщения

  • Свойство «payload» (объект/строка/массив/буфер) – то, как будет вести себя нода «Split», зависит от типа данных, находящегося в этом свойстве:
    • Строка/буфер – нода будет дробить сообщение при помощи специального символа (по умолчанию это «\n»). Получившиеся сообщения будут преобразованы либо в строки, либо в буферы, либо в сообщения фиксированной длины
    • Массив – сообщение будет раздроблено либо на отдельные элементы массива, либо на массивы фиксированного размера
    • Объект – сообщения будут создаваться из пар «ключ/значение» объекта (одна пара – одно сообщение)

Свойства отправляемого сообщения

  • Свойство «parts» (объект) – это свойство содержит информацию о том, как это сообщение создавалось на базе исходного сообщения. Если передать его ноде «Join», она снова сможет собрать раздробленное сообщение воедино. У этого свойства есть несколько подсвойств:
    • «id» – идентификатор группы сообщений
    • «index» – позиция сообщения в группе
    • «count» – общее количество сообщений в группе (если известно). Более подробно читайте ниже в разделе «Потоковый режим».
    • «type» – тип сообщения (строка/массив/объект/буфер)
    • «ch» – данные, которые использовались, чтобы разбить исходное сообщение на несколько сообщений. Используется для строки или буфера
    • «key» – ключ из пары «ключ/значение», из которой было сделано это сообщение. Ноду «Split» можно также настроить, чтобы она копировала это значение в другие свойства сообщения (вроде «msg.topic»).

Используется для строки или буфера

    • «len» – длина каждого сообщения, если исходное сообщение делилось на сообщения фиксированной длины

Подробное описание

Эта нода упрощает создание потоков, где вам нужно сначала разбить сообщение на несколько частей, выполнить с этими частями какие-то типовые действия, а затем при помощи ноды «Join» снова объединить все эти сообщения в одно сообщение.

Чтобы отслеживать разные фрагменты исходного сообщения, нода «Split» использует свойство «msg.parts».

Потоковый режим

Ноду «Split» также можно использовать, чтобы восстановить целостность потока сообщений. Например, представьте, что у вас есть последовательное устройство, отправляющее команды, которые заканчиваются символом новой строки, и оно вдруг отправляет сообщение, в конце которого находится не целая команда, а лишь ее часть. Но, если в ноде «Split» включен «потоковый режим» (чтобы включить его, поставьте галочку рядом с пунктом «Handle as a stream of messages» в меню редактирования ноды «Split»), она по-прежнему будет дробить это сообщение и отправлять дальше полные команды, но, увидев в конце сообщения неполную команду, нода «Split» сохранит его, а затем подставит в начало следующего сообщения.

Работая в этом режиме, нода «Split» не будет задавать свойство «msg.parts.count», т.к. не знает, как много сообщений ожидается в этом потоке. Это значит, что эти сообщения потом нельзя будет объединить с помощью ноды «Join», если она будет работать в автоматическом режиме.

См.также

Внешние ссылки

{{#set: |Название=Нода «Split» |Метки=node split, node-red split, split node, split node-red, нода split,split нода|+sep=,

|Описание=

Дробит сообщение на серию сообщений. |Полная ссылка на страницу=Нода «Split» }}