Описание
Компонента создана по технологии Native API и представляет собой web сервер, который принимает GET запросы и вызывает соответствующие функции платформы.
В качестве основы использовались статья A Simple Webserver in C++ for Windows, а также шаблон внешней компоненты с диска ИТС.
В компоненте реализован вызов следующих функции интерфейса IaddInDefBase:
• ExternalEvent
• CleanEventBuffer
• GetEventBufferDepth
• SetEventBufferDepth
С описанием вышеперечисленных функций можно ознакомиться здесь.
Поддерживаемые ОС
- Linux x32, x64 - толстый клиент, тонкий клиент.
- Windows x32, x64 - толстый клиент, тонкий клиент, веб-клиент (Internet Explorer).
Примерный алгоритм использования
• В 1С:Предприятие создается экземпляр компоненты
• Во внешнее приложение/скрипт передаются порт прослушивания, ключ и ip адрес, если приложение расположено на другом сетевом хосте.
• Из внешнего приложения/скрипта выполняются соответствующие веб-запросы.
Описание интерфейса компоненты
Создание экземпляра компоненты
Имя класса для создания объекта компоненты – WebExtEvent.
Пример:
КомпонентВнСоб = Новый ("AddIn.MyComp.WebExtEvent");
В процессе создания компоненты запускается web сервер, который слушает http запросы. Порт для прослушивания выбирается автоматически. После создания компоненты он доступен через свойство Порт. Также, во время создания экземпляра формируется случайный ключ, значение которого необходимо использовать как параметр при выполнении запросов. Ключ доступен через одноименное свойство.
Свойства
Порт – порт прослушивания веб-сервера. Формируется автоматически при создании экземпляра компоненты.
Ключ – строка, значение которой используется как параметр в веб запросах. Если значение параметра key в запросе и значение свойства Ключ не совпадают – соответствующая функция не будет выполнена. Может быть изменено в процессе работы.
Методы
Все методы возвращают результат в виде plain текста. Доступ к результатам можно получить через свойство Content.
ExternalEvent – Создает новое внешнее событие и помещает его в буфер.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
source – источник события. Если параметр не указан, будет передана пустая строка.
message – сообщение. Если параметр не указан, будет передана пустая строка.
data – данные. Если папаметр не указан, будет передана пустая строка.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/ExternalEvent?key=yourkey&source=yoursource&message=yourmessage&data=yourdata
CleanEventBuffer – очищает буфер событий.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/CleanEventBuffer?key=yourkey
GetEventBufferDepth – возвращает размер буфера сообщений
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
Возвращаемое значение
Количество событий, которое может быть помещено в буфер событий. При ошибке возвращает 0.
Пример:
http://yourhost:yourport/GetEventBufferDepth?key=yourkey
SetEventBufferDepth – устанавливает размер буфера событий.
Параметры
key – ключ, значение должно совпадать со значением свойства Ключ.
depth – новый размер буфера событий. Строка, представляющая целое число.
Возвращаемое значение
“true”, если запрос выполнен успешно, иначе – “false”.
Пример:
http://yourhost:yourport/SetEventBufferDepth?key=yourkey&depth=yourdepth