wiki.skylark.ru

Центр поддержки клиентов Skylark Technology

Инструменты пользователя

Инструменты сайта


ru:manual:action_router

Action Router

Модули (service) программного обеспечения Skylark SL Neo могут обмениваться заданиями на выполнение определенных действий (action).

Главной частью механизма по обмену экшенами является модуль Action router, который обеспечивает регистрацию для остальных модулей системы, желающих отправлять или получать actions. Взаимодействие модулей с Action router происходит по протоколу XML-RPC.

Пример работы Action router

Рисунок демонстрирует запуск воспроизведения программного канала по нажатию кнопки на клавиатуре.

  1. Оператор нажимает кнопку на клавиатуре
  2. Срабатывает Event trigger, настроенный на данную кнопку
  3. Сервис GPI Board генерирует экшен «Play» для соответствующего программного канала
  4. Action Router принимает экшен «Play», определяет получателя и конвертирует экшен и его параметры в XML-RPC команду Skylark API, отправляет команду получателю.
  5. Программный канал получает команду, анализирует ее и запускает плейлист на воспроизведение

Сервисы

Capture

ActionПараметрыОписание
Set audio gain
Disable Action handler
Enable Action handler
Add Action Handler
Delete Action Handler
Reload
Reconnect Hardware

Playout

ActionПараметрыОписание
Set video stream
Set format conversion
Set format
Set Audio Language
Set audio gain
Set Subtitle Language
Play Subtitle
Graphics Actions
Enable DRC
Disable DRC
Enable EBU-R128 Loudness
Disable EBU-R128 Loudness
Connect hardware
Disconnect hardware
Set Sync Mode
Add Action Handler
Delete Action Handler
Enable WSSДобавлено в 2.2.8.
Disable WSSДобавлено в 2.2.8.

Recorder

ActionПараметрыОписание
Set video streamтип источника (FILE/LIVE), имя источниканазначение (коммутация) выхода сервиса Capture, либо файлового источника на вход сервиса записи (Recorder)
Set timecode sourceтип источника TC (NONE/VITC/VTR/TIME)назначение источника ТС для сервиса Recorder
Set destinationнаименование профиля указывается в окне настройки правила Param1 (соответствующий профиль записи должен быть предварительно настроен)назначение профиля записи для сервиса Recorder
Set VTR Prerollзначение в кадрахустановка значения Preroll для магнитофона
Append itemнеобязательные параметры: длительность, тип старта, имя клипа, папка, время жизни клипа, старт записи, задаются в окне настройки правиладобавление нового события записи в rec- лист
Clear остановка записи текущего события и удаление всех строк из rec-листа
Restart остановка записи текущего события, сброс статусов всех строк rec-листа
Start старт записи текущего события в rec- листе
Pretake предварительная подготовка к записи текущего события в rec-листе
Stop остановка записи текущего события
Next Item остановка записи текущего события, переход к исполнению следующего события в rec-листе
Set Markerнеобязательные параметры: наименование и комментарий для ключевого кадра

функция активна при записи материалов в БД сервера|

RecManager (Recording Manager)

ActionПараметрыОписание
Отсутствуют.

Storage

Подробнее о настройке сервиса медиабазы.

ActionПараметрыОписание
Dump Open File

Program Channel

Подробнее о настройке сервиса программного канала.

ActionПараметрыОписание
Play DTMF
  1. DTMF String
  2. Номер аудио канала с 1 (-1 для всех). (опционально)
  3. Уровень громкости по шкале dBFS (опционально)
  4. Tone duration (ms)(опционально)
  5. Pause duration (ms)(опционально)
Используется для однократного воспроизведения семпла DTMF сигнала на выходе программного канала. Может использоваться головной станцией для выдачи сигнала о рекламной врезке для региональных партнеров.
Set background videoпараметры: тип источника (FILE/LIVE), имя файла, либо наименование Live- клипа задаются в окне настройки правила или считываются из колонки плейлистаназначение, смена файлового, либо Live- источника для слоя Background
Set format conversionввод значения (scale, crop, box, letter) производится в окне настройки правила, либо параметр считывается из колонки плейлистаустановка режима конвертации видеоряда при несовпадении соотношения сторон исходного контента и настроек программного канала
Set formatввод значения (4:3 или 16:9) производится в окне настройки правила, либо параметр считывается из колонкиустановка соотношения сторон для выходного сигнала программного канала (4:3 или 16:9)
Set Output AFDParam 1 - значение AFD: FF, 4x3B, 16x9B, 14×9, 4x3SP14x9, 16x9SP14x9, 16x9SP4x3, NONE или пустое значение - Auto)Переопределяет значение AFD
Toggle layerввод номера слоя (1 - основной полноэкранный, 2…9 - слои графики LAY1…LAY8 соответственно) производится в окне настройки правила (поле Param1) или считывается из колонки плейлиста, включение/выключение отображения слоя не влияет на ход исполнения плейлистов графикипереключение отображения выбранного слоя с плейлистом графики на обратное: одной командой можно включать/выключать отображение
Show layerввод значения (номер слоя графики 1…8) производится в окне настройки правила (поле Param1) или считывается из колонки плейлиста, включение/выключение отображения не влияет на ход исполнения плейлистов графикивключение отображения графического слоя с плейлистом
Hide layerввод значения (номер слоя графики 1…8) производится в окне настройки правила (поле Param1) или считывается из колонки плейлиста, включение/выключение отображения не влияет на ход исполнения плейлистов графикивыключение отображения графического слоя с плейлистом
Toggle graphicsввод номера слоя (1 - основной полноэкранный, 2…9 - слои графики LAY1…LAY8 соответственно) производится в окне настройки правила (поле Param1) или считывается из колонки плейлистапереключение отображения выбранного слоя с композицией графики на обратное: одной командой можно включать/выключать отображение
Show graphicsввод значения (номер слоя графики 1…8) производится в окне настройки правила (поле Param1) или считывается из колонки плейлиставключение отображения слоя с графической композицией
Hide graphicsввод значения (номер слоя графики 1…8) производится в окне настройки правила (поле Param1) или считывается из колонки плейлиставыключение отображения слоя с графической композицией
Set graphicsпараметры: номер слоя 1…8, тип источника (FILE-файл в папке, URL-клипа в БД сервера) и имя источника задаются в окне настройки правила или считываются из колонки плейлистаназначение, смена файлового источника для слоя с графической композицией
Graphics actionввод команды производится в окне настройки правила (поле Param1) или считывается из колонки плейлистаисполнение команды из SL NEO Graphics SDK
Set graphics time slotввод значений (номер слоя 1…8 и время тотбражения в ms) производится в окне настройки правила или считывается из колонки плейлистаустановка времени отображения слоя с графической композицией
Toggle logoкоманда не имеет дополнительных параметровпереключение отображения выбранного слоя с лого на обратное: одной командой можно включать/выключать отображение
Show logoввод значения (on/off) производится в окне настройки правила или считывается из колонки плейлиставключение отображения графического слоя с логотипом
Hide logoввод значения (on/off) производится в окне настройки правила или считывается из колонки плейлиставыключение отображения графического слоя с логотипом
Set logoпараметры: тип источника (FILE-файл в папке, URL - клип в БД сервера) и имя источника задаются в окне настройки правила или считываются из колонки плейлистаназначение, смена файлового источника для слоя с лого
Restartкоманда применяется для одного слоя, значение с номером слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики) вводится в окне настройки правилаостановка исполнения плейлиста, сброс статусов всех строк
ClearПринимает один параметр - номер останавливаемого слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики).Экшен останавливает и очищает плейлист. Добавлено в 2.2.38
Playкоманда применяется для одного слоя, значение с номером слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики) вводится в окне настройки правилазапуск воспроизведения первой строки в плейлисте или первой строки после последней исполненной
Stopкоманда применяется для одного слоя, значение с номером слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики) вводится в окне настройки правилаостановка воспроизведения текущего события в плейлисте
Stop ifПринимает 3 параметра:
  1. номер слоя, который будет остановлен,
  2. имя колонки плейлиста, где будет производится поиск значения для дополнительного условия. Например: uri, player, title, comment, group, type, tape, name, gpi1_mode-gpi8_mode, gpi1_val-gpi8_val, item_id, start_type,
  3. значение, которое должно находится в плейлисте, чтобы выполнилась команда «Stop» Для gpi1_mode-gpi8_mode - none, on, off, для start_type - manual, hard_start, auto.
команда позволяет останавливать воспроизведение, но только в том случае, если текущий клип удовлетворяет некоторому условию. Это позволяет останавливать врезку при помощи закрывающей scte-104/35 команды, когда используются идентификаторы событий в посылках.
Stop Graphicsкоманда применяется синхронно для всех слоев графикиостановка воспроизведения текущих событий во всех плейлистах графики
SkipПринимает два параметра:
  1. номер слоя, где будет применена команда (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики)
  2. ID строки (необязательный параметр). Если этот параметр присутствует, то будет пропущена строка с указанным индексом (а не текущая).
быстрый переход к исполнению следующей или заданной строки в плейлисте. Используя параметр «ID строки», можно настроить автоматический пропуск строк с «NoMedia» путем использования экшена «Media Offline Clip» с Delay, например, 2000мс, и вызовом «Skip $(item_idx)»
Pauseкоманда применяется для одного слоя, номер слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики) вводится в окне настройки правилаприостановка воспроизведения текущего события в плейлисте
Unpauseкоманда применяется для одного слоя, номер слоя (1 - основной полноэкранный плейлист, 2…8 - слои с плейлистами графики) вводится в окне настройки правилапродолжение воспроизведения текущего события после команды Pause
Emergencyкоманда применяется для основного полноэкранного слоявставка в текущую позицию плейлиста клипа с аварийной заставкой и быстрый переход к его исполнению
Holdкоманда применяется для одного слоя, номер слоя (1 - основной полноэкранный плейлист, 2…9 - слои с плейлистами графики) вводятся в окне настройки правилаисполнение команды на «удержание» Live-события в плейлисте
Select next clipкоманда применяется для одного слоя, параметры: номер слоя, команда PRETAKE, либо PLAY вводятся в окне настройки правилапредварительная подготовка, либо переход к воспроизведению следующего клипа в плейлисте
Select clip by numberкоманда применяется для одного слоя, параметры: номер слоя, команда PRETAKE, либо PLAY, номер строки вводятся в окне настройки правилапредварительная подготовка, либо старт воспроизведения клипа, находящегося в строке плейлиста с указанным порядковым номером
Select clip by current time
  1. Номер слоя. Нумерация начинается с 1 (основной плейлист, CASTx), 2 (первый слой графики, CASTx_LAY1) и т.д.
  2. Максимальная разница времени начала в секундах
  3. Действие для выполнения: PRETAKE или PLAY
  4. Действие, если не найден: NONE, STOP или SKIP
  5. Runing Margin (seconds, -1 for none)
  6. Start Delay (seconds, -1 for none)
Используется на региональных станциях для врезки по DTMF, когда надо автоматизированно врезаться не во все временные слоты.
Select clip by titleкоманда применяется для одного слоя, параметры: команда PRETAKE, либо PLAY, номер слоя, имя клипа (колонка Title в плейлисте), значение задержки вводятся в окне настройки правила или считываются из колонок плейлистапредварительная подготовка, либо старт воспроизведения клипа, находящегося в строке плейлиста с указанным именем
Select clip by groupкоманда применяется для одного слоя, параметры: команда PRETAKE, либо PLAY, номер слоя, имя группы (поле Group в плейлисте), значение задержки вводятся в окне настройки правила или считываются из колонок плейлистапредварительная подготовка, либо старт воспроизведения первого клипа в указанной группе плейлиста
Select clip by columnкоманда применяется для одного слоя, параметры: команда PRETAKE, либо PLAY, наименование колонки и значение в ней, значение задержки при старте, вводятся в окне настройки правила или считываются из колонок плейлистапредварительная подготовка, либо старт воспроизведения клипа, расположенного в строке плейлиста, для которой значение в определенной колонке совпадает с указанным
Play clipкоманда применяется для одного слоя, параметры:
  1. номер слоя (1 - основной полноэкранный плейлист, 2…9 - слои с плейлистами графики),
  2. имя клипа в БД сервера,
  3. Player name
  4. точка IN
  5. точка OUT,
  6. Длительность события,
  7. Тип перехода (cut, v-mix, x-mix)
  8. Скорость перехода (0 - мгновенный, -1 - быстро, -2 - средне, -3 - медленно)
  9. WIPE
  10. Параметры клипа
  11. Выполняемое действие (APPEND - только добавить в конец, PRETAKE - добавить в конец и подготовить к воспроизвдению, PLAY - добавить в конец и начать воспроизведение)
  12. значение задержки старта в миллисекундах
  13. Audio Transparency (0-100, -1 для авто)
  14. Группа клипа
  15. Event ID
  16. Тип старта (MANUAL - ручной, AUTO - автоматический по плейлисту)
постановка клипа с указанным именем в конец плейлиста и его воспроизведение. Использование на примере настройки титров «Сейчас в программе» и «Смотрите далее». Значение поля Param10 для этого экшена может иметь вид element@value, где element – название элемента графической композиции, в который будет осуществляться подстановка, а value – это подставляемое значение. Если требуется передать значение переменной, то запись осуществляется в следующем формате - ProgTitle@$(comment). Если требуется передать более одного значения ключ-параметр, то их надо разделить символом - @. Например: param1@val1@param2@val2.
Sync Stopбез параметроввыключение режима постоянной синхронизации исполняемого плейлиста резервного сервера от основного
Sync Startбез параметроввключение синхронизации исполняемого плейлиста резервного сервера от основного
Sync Onceбез параметроввключение однократной синхронизации исполняемого плейлиста основного резервного сервера от резервного
Sync Offlineбез параметровDo offline synchronization to peer program playout service
Live CC OnParam1 - CC Stream 1 or 2Turn live closed captions insertion on program playout service
Live CC OffParam1 - CC Stream 1 or 2Turn live closed captions insertion offprogram playout service
Live CC Set ParamsParam1-CC stream (1 or 2), Param2-Number of lines (2, 3 or 4), Param3-Base line (1-15), Param4-Identation (0, 4, 8, 12, 16, 20, 24 or 28)Set live closed captions insertions parameters
Live CC AppendParam1-CC stream (1 or 2), Param2-Text to appendSend text to live closed captions stream
Disable Action handlerИмя обработчика экшена для отключения. Пустое значение - отключение всех обработчиков.Отключает указанный обработчик экшена
Enable Action handlerИмя обработчика экшена для включения. Пустое значение - включение всех обработчиков.Включает указанный обработчик экшена
SCTE-104 Splice RequestПараметры описаны в статье Настройка генерации меток формата SCTE-104Вставляет метку SCTE-104 Splice Request
SCTE-104 Segmentation Descriptor RequestПараметры описаны в статье Настройка генерации меток формата SCTE-104Вставляет метку SCTE-104 Segmentation Descriptor Request
Gen sGPI PacketParam1-Param10Generate and insert an sGPI packet into VANC
Set Time ZoneParam1 - смещение в минутахустанавливает смещение временной зоны относительно UTC в минутах (-9999 - местное время)
Next MarkerParam1 - Marker Track (если указано пустое значение, то используется тип «General»), Param2 - Marker Title (любое значение, если в поле указано пустое значение)Переходит к следующему ключевому кадру текущего клипа в плейлисте. Параметры добавлены в версии 2.4.14.
Prev MarkerParam1 - Marker Track (если указано пустое значение, то используется тип «General»), Param2 - Marker Title (любое значение, если в поле указано пустое значение)Переходит к предыдущему ключевому кадру текущего клипа в плейлисте. Параметры добавлены в версии 2.4.14.
Enable BlurParam1 - Задает прямоугольную область размытия в формате x,y,w,h (например: «0.2,0.2,0.5,0.3»)Включает размытие самого верхнего непрозрачного слоя в программном канале (графические слои являются прозрачными). Пример выхода программного канала с включенной функцией размытия:
Disable BlurБез параметров.Выключает размытие самого верхнего непрозрачного слоя в программном канале. Пример выхода программного канала с выключенной функцией размытия:
Enable BeepParam1 - Громкость генерируемого сигнала в дБ (по умолчанию -14 дБ)Включает воспроизведение тонового сигнала в звуковом канале. Добавлено в версии 2.4.14.
Disable BeepБез параметров.Отключает воспроизведение тонового сигнала в звуковом канале. Добавлено в версии 2.4.14.
Enable MuteБез параметров.Отключает вывод звука. Добавлено в версии 2.4.14.
Disable MuteБез параметров.Включает вывод звука. Добавлено в версии 2.4.14.
Set Item ColumnЭкшен принимает 4 параметра. Param N:
  1. Номер слоя (нумерация с 1, 1 - основной слой)
  2. Порядковый номер элемента плейлиста (нумерация с 1, 1 - первый элемент плейлиста)
  3. Имя столбца плейлиста. Возможные значения: key1_mode…key4-mode, gpi1_mode…gpi8_mode, gpi1_val…gpi8_val.
  4. Устанавливаемое значение. Для параметров «xxxx_mode» допустимые значения: none, on или off. Для параметров «xxxx_val»: строковое значение.
Экшен позволяет устанавливать значения в полях key1_mode-key4-mode, gpi1_mode-gpi8_mode, gpi1_val-gpi8_val для заданного элемента плейлиста
Clear Last FrameБез параметровReset postroll or invalid frame stills. Добавлено в 2.2.38.
Set Media Purge DateЭкшен принимает 3 параметра. Param N:
  1. Media URL
  2. Количество дней, меньше или равно нулю - бесконечно
  3. Параметр устанавливается в значение ON, YES, TRUE или 1, если указано минимальное количество дней. То есть время удаление будет обновлено только в том случае, если время установлено раньше, чем указано.
Set media auto deletion date to a specified amount of days. Добавлено в 2.2.38.
Dump NoMedia filesБез параметровВыводит клипы со статусом NoMedia в лог.
Set OnAir StatusЭкшен принимает 1 параметр. Param 1: Параметр устанавливается в значение ON, YES, TRUE или 1, если требуется установить статус OnAir.Устанавливает статус OnAir. В логе программного канала при первом вызове с параметром выводится сообщение: LAY_0: Logger on air state: 0 -> 1. Если указан пустой Param1, то выводится сообщение: LAY_0: Logger on air state: 1 -> 2.
Emit PlaylistChangedЭкшен принимает 1 параметр. Param1 - номер слоя, где требуется вызвать событие (нумерация начинается с 1).Вызывает генерацию события PLAYLIST_CHANGED в General Events. Добавлено в 2.3.37.
Merge Output MixerParam1 - Mixer spec in a form: [=][ch<=|+>ilay/ich/pct][,ch<=|+>ilay/ich/pct][,....]
  • Input layer 0: background
  • Input layer 1-8: playlist layers
  • Input layer -1: composition of all layers taking layer opacity in account
  • Zero all channels and mix main layer ch1 and ch2 to output 1 and 2: =1=1/1/100,2=1/2/100
  • Zero all channels and mix background and main layers ch1 to output 1: =1=0/1/100,1+1/1/100
Modify output audio mixer parameters
Enable Output MixerParam1 - ON, YES, TRUE or 1 if enabled, OFF, NO, FALSE or 0 is disabldSet if output audio mixer is applied
Set Open Captions StreamParam1 - Stream number (0 to turn open captions off)Set currently displayed open captions stream

GPI Board

ActionПараметрыОписание
Set pin
Pulse pin
Trigger Handler

RSS Feed

ActionПараметрыОписание
Отсутствуют

Router Bus

ActionПараметрыОписание
Connect pin
Do effect

InstantReplay

ActionПараметрыОписание
Load Tray
Next Tray
Prev Tray
Store Cue
Store Rec Cue
Next Cue
Prev Cue
Set Game Time
Goto Game Time

Profanity Delay

ActionПараметрыОписание
Set video stream
Set format conversion
Set format
Set delay
Toggle delay
Clear step
Clear all
Clear start
Clear stop

Multiscreen

ActionПараметрыОписание
Acknowledge AlarmБез параметровСбросить все предупреждения
Silence AlarmБез параметровFIXME
Enable AlarmПараметры:
  1. Window name - имя окна
  2. Alarm Type
    • still - Still Frame
    • black - Black Frame
    • higher - audio overload
    • lower - audio silence
    • xmlrpcdisconnect - connection lost
Установить предупреждения для заданного окна
Disable AlarmПараметры:
  1. Window name - имя окна
  2. Alarm Type
    • still - Still Frame
    • black - Black Frame
    • higher - audio overload
    • lower - audio silence
    • xmlrpcdisconnect - connection lost
Отключить предупреждение для заданного окна
Set Active WindowПараметры:
  1. Window name
  2. Audio Layout Name
Коммутирует звук из выбранного окна на выход мультискрина, такое окно подсвечивается рамкой.
Next WindowБез параметровСделать следующее окно активным
Previous WindowБез параметровСделать предыдущее окно активным
Next Audio LayoutБез параметровПереключение каналов звука вперед при активной функции Set Active Window
Previous Audio LayoutБез параметровПереключение каналов звука вперед при активной функции Set Active Window

TimeCode Source

ActionПараметрыОписание
Отсутствуют.

Data Provider

ActionПараметрыОписание
Отсутствуют.

Регистрация в Action router

Регистрация через API

The action router service sits at port number 5454 and it accessible through XML-RPC protocol. Every service which needs to react to actions has to register with the action router by calling «add_action» method. Once registered the new handler can be selected in the web console configurator of an action source service. Action parameters are always passed as strings and converted to numerical types if the actual handler method specifies a numeric type. Actual handler method parameter are mapped to actual action parameter according ActionParamInfo specification.

Method name: «add_action» Register a new action handler with the Action Router service This method has the following parameters: Parameter 0 - struct ActionInfo - a structure describing a new action handler Return value - None.

The ActionInfo structure contains the following members:

"name" - string - name of the action used to trigger the action by other services.
"server_type" - string - server type name. It's used for user's reference only.
"server_name" - string - server name used to trigger the action by other services.
"descr" - string - user visible description of the action.
"arg_descr" - array<string> - user visible description of the action parameters.
"reaction_delay" - double - time in seconds needed to execute the action. For example,
                            the playlist actions are usually bound to some particular
                            event in the playlist at some point in time. The playlist
                            action generator will take this reaction delay into account
                            and emit the action "reaction_delay" seconds earlier so that
                            the actual handler completes at the proper time.
"handlers" - array<ActionHandlerInfo> - array of the action handler method descriptions.

The ActionHandlerInfo struct contains the following members:

"host" - string - ip address of the service that handles the action.
"port" - int - port number of the service that handles the action.
"method" - string - XML-RPC method name that handles the action.
"parameters" - array<ActionParamInfo> - array of actual action parameters mapping to the
                                        XML-RPC method's parameters.

The ActionParamInfo struct contains the following members:

"param_type" - string - type name of a parameter. Currently, the following type names
                        are supported:
  "int" - integer number
  "string" - utf8 string
"param_val" - string - value specifier. When a '%X' character sequence is encountered
                       (where X can be in range '1'-'9' or 'A'-'Z') it is substituted 
                       by corresponding actual action parameter. For example, an
                       action may specify just one parameter but the handler method
                       may take two parameters. In this case, one of the parameters
                       can be specified and a fixed value and the other one as "%1"
                       which will use the action's actual parameter.

Важно! При перезагрузке сервера вам требуется повторно выполнить регистрацию вашего сервер через API.

Регистрация через файл

Ваши сервисы могут регистрироваться в ActionRouter посредством специального XML файла - comgpi.xml, который должен размещаться в папке: C:\Program files (x86)\SL NEO Media Platform\run\. Этот вариант имеет преимущества по сравнению с регистрацией через API, так как вам не требуется постоянно следить за текущим состоянием регистрации вашего сервиса, а также отсутствует вероятность «двойной» регистрации.

Пример 1

<comgpid>
<!-- 
тег action содержит три атрибута 
name - Имя регистрируемого экшена. Используется в поле Action.
server_type - Пользовательское имя сервиса, используется только для отображения в интерфейсе
server_name - Имя сервиса. Используется в поле Service.
-->
  <action name="My Action" server_type="My Server" server_name="My Server_1">
  <!-- Описание экшена для вывода в интерфейсе -->
    <description>
      This is a test Action
    </description>
    <params>
    <!-- Перечисление параметров, значения которых будут задаваться в полях Param1-Param16 -->
      <param>
        <description>
          <!-- Текст всплывающей подсказки для поля Param -->
          Param1 description
        </description>
      </param>
      <param>
        <description>
          Param2 description
        </description>
      </param>
    </params>
    <!-- FIXME -->
    <reaction_delay addr="localhost:12345" method="my_method" value="0.5"/>
    <!-- Описание параметров сервера, который будет обрабатывать XML-RPC запрос, 
    отправляемый при срабатывании экшена My Action: 
    addr - IP адрес и порт сервера
    method - имя вызываемого на сервере метода
    -->
    <handler addr="localhost:12345" method="my_method">
      <!-- 
      Перечисление параметров, отправляемых методу my_method.
      Их количество может отличаться от количества передаваемых в экшен параметров 
      (В рассмотренном примере экшен принимает 2 параметра, а метод - 3). 
      При описании параметров обязательно указание типа в поле type:
      int - целочисленный тип,
      double - число с плавающей точкой,
      string - строка.
      -->
      <param type="int" value="%1"/>
      <param type="double" value="%2"/>
      <param type="string" value="Custom string with %2 in third param"/>
    </handler>
  </action>
</comgpid>

При срабатывании этого экшена на сервер будет отправлен запрос:

<?xml version="1.0"?>
  <methodCall>
    <methodName>my_method</methodName>
  <params>
    <param><value><i4>11</i4></value></param>
    <param><value><double>22.0000000000</double></value></param>
    <param><value>three</value></param>
  </params>
  </methodCall>

Пример 2

Пример файла comgpi.xml для регистрации экшена.

comgpi.xml
<comgpid>
  <action name="send" server_type="Email sender" server_name="Email sender">
    <description>
      This is a test Action
    </description>
    <params>
      <param>
        <description>
          E-mail addr
        </description>
      </param>
      <param>
        <description>
          Theme
        </description>
      </param>
      <param>
        <description>
          Text
        </description>
      </param>
    </params>
    <reaction_delay addr="localhost:8080" method="send_email" value="5"/>
    <handler addr="localhost:8080" method="send_email">
      <param type="string" value="%1"/>
      <param type="string" value="%2"/>
      <param type="string" value="%3"/>
    </handler>
  </action>
</comgpid>

Настройка вызова экшена.

Пример программы на nodejs, которая «слушает» порт 8080, получает XML-RPC запросы от сервера Skylark и выводит содержимое запроса в командную строку.

server.js
var http = require('http');
 
var svr = http.createServer(function(request, response) {
	var body = "";
 
    console.log("url: " + request.url);
	console.log("method: " + request.method);
    console.log("headers: ");
	console.log(request.headers);
 
	request.on('data', function (chunk) {
		body += chunk;
	});
	request.on('end', function () {
		console.log('body: ' + body);
	})
 
}).listen(8080);

Для работы данного примера требуется установить расширения nodejs: http (команда: «npm install имя_модуля»). Вызов программы производится из интерфейса командной строки: «nodejs имя_файла_программы.js».

Содержимое XML-RPC запроса, который приняла программа при срабатывании экшена «send».

Логи

Примеры

ru/manual/action_router.txt · Последние изменения: 2018/11/14 18:44 — Dmitriy Sazhin

У Вас есть вопрос?
Гарантийное обращение

Введите данные с наклейки на верхней стороне сервера:

Наклейка на крышке сервере
1
2
3
×
Позвонить...
* - поля обязательны для заполнения
×
Написать

Техподдержка по телефону и email доступна в рабочие дни и часы.

Вы можете позвонить нам завтра после 11 часов или написать сейчас!

+7 (812) 944-04-76
Сергей Перминов
+7 (812) 930-04-76
Дмитрий Сажин


Если с вашей компанией заключен договор круглосуточной поддержки, используйте контактные телефоны, указанные в нем.
×
Обращение принято

Благодарим Вас за обращение в службу поддержки!

Вашему обращению присвоен номер:

  • Подтверждение обращения направлено на указанный Вами email-адрес.
  • Наш специалист свяжется с Вами в ближайшее время.