Когда генерируются события, генерируемые портом? И что они означают?

Насколько я могу судить, порт NoFlo отправляет 7 событий:

прикрепить, подключить, начать группу, данные, конечную группу, отключить, отсоединить

Для меня некоторые из этих событий кажутся очень похожими, например, присоединение + подключение и отключение + отсоединение. В чем разница?

Что означают begingroup и endgroup?

Когда возникают эти события и когда они обычно используются?

Я видел документацию по адресу: http://noflojs.org/documentation/components/#portevents

Будет ли правильным мое предположение, если предположить, что присоединение и отсоединение предназначены для обработки случаев пользовательского интерфейса NoFlo, например, для изменения состояния внешнего вида компонентов?

Другое предположение состоит в том, что соединение запускается каждый раз перед отправкой данных? Затем данные запускаются. Потом отключить? Мне кажется немного странным...

Я полностью в темноте, когда дело доходит до групп.


person MikkoH    schedule 07.03.2014    source источник


Ответы (1)


attach и detach происходят, когда сеть NoFlo подключает (или удаляет) сокет к порту. Поэтому обычно они происходят во время запуска сети, до отправки IIP.

Исключением является случай, когда вы редактируете график в режиме реального времени с помощью такого инструмента, как Flowhub. В этой ситуации attach/detach может произойти всякий раз, когда вы подключаете или удаляете провода.

Большинству компонентов не нужно заботиться о событиях вложений.

connect происходит до того, как восходящее соединение отправит данные, и disconnect, когда восходящее соединение сообщает, что оно отправило все, что намеревалось отправить. Таким образом, это события начала передачи и конца передачи. Восходящий компонент может снова выбрать connect после disconnect, если у него есть новый пакет данных для отправки.

data — это событие для фактических пакетов, содержащих полезную нагрузку.

begingroup и endgroup — это «IP-адреса скобок», содержащие метаданные об отправляемых данных. Их можно использовать для создания древовидных структур с пакетными данными.

Например, filesystem/ReadFile отправит содержимое файла в виде пакета data, но имя файла будет отправлено через скобку IP с использованием пакетов begingroup/endgroup вокруг фактического содержимого файла.

Библиотека noflo-groups предоставляет множество компонентов для использования информации о группах для синхронизации, маршрутизации и т. д.

person bergie    schedule 07.03.2014
comment
detach события можно использовать для закрытия или завершения таких вещей, как прослушиватели или временные события. attach можно использовать для инициализации счетчиков, отправки начальных значений компонентам, которые в них нуждаются, или для запуска длинных слушателей и событий по времени. - person AlfredoVR; 08.03.2014
comment
Есть ли у ReadFile только одно соединение в начале и разъединение в конце, или у него есть соединение/разъединение для каждых данных? В классическом FBP такой концепции нет, поэтому я понятия не имею, чего ожидать. @bergie, вы говорите, ... когда восходящее соединение говорит, что оно отправило все, что намеревалось отправить. Единственными подобными вещами в классическом FBP будут IP-адреса скобок, которые вы уже обрабатываете с помощью begingroup и endgroup ... Кроме того, как процесс-получатель реагирует на сигнал отключения? - person Paul Morrison; 09.03.2014
comment
Группы также полезны для асинхронных компонентов. Выходные данные отправляются в том порядке, в котором они обрабатываются, что может отличаться от порядка получения. Для отслеживания соответствия входных и выходных данных выходные данные отправляются с группой, помеченной входными данными. См. noflojs.org/documentation/async-components. - person forresto; 10.03.2014