Компонента работает в синхронном режиме (обновлено) "Запрос-Ответ", при этом выполняется стабильное удержание подключения с сервером (как в случае TCP). Выполняется контроль ошибок на всех этапах работы ВК, возможность указания файла для ведения логов работы клиента WSS.
В поставку входит внешняя обработка, пример подключения и обмена данными с внешней компонентой. Все необходимые комментарии и разъяснения приведены в модуле формы внешней обработки. Обработка выполнена на упр. формах.
Подходит для таких разработок как: обмен с виртуальными АТС, или таким облачным сервисом как - "Мои звонки", обмен с сайтами статистики и т.д. (все где используется wss протокол), работа с POS-терминалами приватбанка.
Технология внешних компонент Native API поддерживается с версии платформы 8.2, рекомендуемая версия для работы 8.3. Релиз версий не играет роли и не привязан к работе самой ВК.
Обновлено 25.03.2019
Добавлено свойство (и параметр в методе) "origin" - для специфических подключений;
Добавлен объект "Прокси" - для подключения к wss через прокси-сервер (метод "УстановитьПрокси" или через свойства), подробности в комментариях обработки-примера
Обновлено 11.09.2020
Добавлена новая версия компоненты (новые версии библиотек SSL):
1. Добавлена поддержка версий протокола TLS: 1.0, 1.1, 1.2;
2. Добавлена поддержка сертификатов;
3. Добавлен метод "УстановитьTLSПараметры" ("SetTLSOptions") (описание в комментариях обработки-примера);
4. Добавлено свойство "ВерсияTLS" ("tlsVersion");
5. Удален 4 параметр (Защищенное соединение) метода "Подключить" ("Connect").
Обновлено 07.10.2020
Добавлен новый релиз v. 2.0 (x32);
Добавлен новый релиз v. 2.0 (x64);
Что нового:
- Работа с платформой х64 (внимание, при работе на х64, в режиме TLS, копируем библиотеки ssleay в папку SysWOW64, и именно из архива libssl_x64, т.к. библиотеки имеют одинаковые имена!! см. файл readme в архиве библиотек)
- Режим работы на сервере - обратный вызов процедуры глобального серверного общего модуля (указывается при подключении компоненты, см. комментарии в обработке-примере) вместо "клиентского" внешнего события. Реализовано обратным подключением через comconnector )
- для страждущих разработчиков компонент на Delphi, выкладываю переработанный интерфейс v8napi, работающий (без ошибок и вылетов) на x64. После долгих мытарств и поисков, пришлось самому разобраться с менеджером памяти, но отдельное спасибо andrewks
Обновление Версия 3.0.2
- поддержка TLS до версии 1.3 включительно;
- возможность указания клиентского сертификата для TLS;
- удалены свойства: хост, порт;
- добавлено свойство URL (полный путь к серверу);
- добавление/удаление/очистка собственных заголовков (Headers);
- функционал Basic авторизации;
- функционал Token авторизации;
- функционал HeartBeat;
- функционал WatchDog;
- режим Clean disconnect (оповещение сервера при отключении клиента);
- добавлена отправка данных асинхронно (с ожиданием ответа);
- отправка двоичных данных;
- режим работы сервера: добавлен функционал записи событий в регистр сведений;
- получение входящих сообщений (text, binari в виде base64 строки);
- режим изолированного-неизолированного подключения компоненты;
- режим лицензирования (демо, постояная);
- обновлен интерфейс v8napi (поддержка нового режима локализации, изолированного подключения).
Технические данные и характеристики:
Рекомендуемая минимальная версия платформы 8.3.21
Общие свойства компоненты:
- Версия (Version) - Строка - версия компоненты (только чтение);
- ГлубинаБуфераСобытий (EventBufferDepth) - Число - размер буфера событий (чтение/запись);
- URL - Строка - полный путь к серверу (например "wss://ws-api.exmo.com/v1/public") (только запись);
- ИсходныйХост (Origin) - Строка - требуют указания некоторые web-socket серверы (чтение/запись);
- ТаймаутПодключения (ConnectTimeout) - Число - таймаут установки соединения, мс (значение по умолчанию) (чтение/запись);
- ЧистоеОтключение (CleanDisconnect) - Булево - оповещение сервера при отключении (чтение/запись);
- ЛогВключен (LogEnabled) - Булево - вкл/выкл ведения лога (чтение/запись);
- ЛогФайл (LogFile) - Строка - путь к файлу лога (чтение/запись);
Свойства и методы TLS:
- TLSВерсия (tlsVersion) - Число - версия TLS. (чтение/запись)
- 0 - Авто;
- 1 - TLS v1;
- 2 - TLS v1.1;
- 3 - TLS v1.2;
- 4 - TLS v1.3;
- TLSФайлСертификата (tlsCertFile) - Строка - путь к файлу клиентского сертификата (PEM) (чтение/запись);
- TLSФайлПриватногоКлюча (tlsKeyFile) - Строка - путь к файлу приватного ключа сертификата (чтение/запись);
- TLSПарольСертификата (tlsPassword) - Строка - пароль сертификата (если требуется) (только запись);
- метод УстановитьПараметрыЗащищенногоСоединения (SetTLS) - параметры:
- Версия - Число - версия TLS (значения совпадают с указанными для свойства);
- ФайлСертификата - Строка - путь к файлу сертификата (PEM);
- ФайлПриватногоКлюча - Строка - путь к файлу приватного ключа;
- Пароль - Строка - пароль сертификата;
Возвращаемое значение - Булево - успешная или нет установка параметров;
Свойства и методы объекта Proxy (доступно только в лицензионном режиме):
- ПроксиВключен (ProxyEnabled) - Булево - вкл/выкл прокси (чтение/запись);
- ПроксиХост (ProxyHost) - Строка - адрес прокси-сервера (чтение/запись);
- ПроксиПорт (ProxyPort) - Число - порт прокси-сервера (значений по умолчанию 8080) (чтение/запись);
- ПроксиПользователь (ProxyUser) - Строка - пользователь прокси-сервера (чтение/запись);
- ПроксиПароль (ProxyPass) - Строка - пароль прокси-сервра (только запись);
- метод УстановитьПараметрыПрокси (SetProxy) - параметры:
- Включен - Булево;
- Хост - Строка;
- Порт - Число;
- Пользователь - Строка;
- Пароль - Строка;
Возвращаемое значение - Булево - успешная или нет установка параметров;
Свойства и методы объекта HeartBeat (Ping-Pong)
- СердцебиениеВключено (HeartBeatEnabled) - Булево - вкл/выкл пинг-понг (чтение/запись);
- СердцебиениеИнтервал (HeartBeatInterval) - Число - интервал сообщений пинг-понга, сек (чтение/запись);
- СердцебиениеТаймаут (HeartBeatTimeout) - Число - тайм-аут разрыва соед. при отсутствии ответов, сек (чтение/запись);
- метод УстановитьПараметрыСердцебиения (SetHeartBeat) - параметры:
- Включен - Булево;
- Интервал - Число;
- Таймаут - Число;
Возвращаемое значение - Булево - успешная или нет установка параметров;
Свойства и методы объект WatchDog (доступно только в лицензионном режиме):
- СторожВключен (WatchDogEnabled) - Булево - вкл/выкл сторожа (чтение/запись);
- СторожИнтервал (WatchDogInterval) - Число - интервал между попытками восстановления соединения, сек (чтение/запись);
- СторожПопыток (WatchDogAttempts) - Число - кол-во попыток восстановления соединения (чтение/запись);
- метод УстановитьПараметрыСторожа (SetWatchDog) - параметры:
- Включен - Булево;
- Интервал - Число;
- Попыток - Число;
Возвращаемое значение - Булево - успешная или нет установка параметров;
Основной программный интерфейс:
- метод ДобавитьЗаголовок (AddHeader) - добавить свой заголовок (доступно только в лицензионном режиме). Параметры:
- Ключ - Строка - ключ заголовка;
- Значение - Строка - значение заголовка;
- метод УдалитьЗаголовок (RemoveHeader) - удалить ранее добавленный заголовок. Параметры:
- Ключ - Строка - ключ удаляемого заголовка;
- метод ОчиститьЗаголовки (ClearHeaders) - очистить все ранее добавленные заголовки. Нет параметров
- метод УстановитьБазовуюАвторизацию (SetBasicAuthorization) - установка параметров подключения для базовой авторизации на сервере (то-же что заголовок "Authorization: Basic base64(Login:Password)"). Параметры:
- Включен - Булево - включить базовую авторизацию;
- Пользователь - Строка - имя пользователя;
- Пароль - Строка - пароль;
- метод УстановитьТокенАвторизацию (SetTokenAuthorization) - установка параметров подключения для Токен авторизации на сервере (то-же что заголовок "Token: <TokenValue>") (доступно только в лицензионном режиме). Параметры:
- Включен - Булево - включить токен авторизацию;
- Токен - Строка - значение токен-ключа;
- метод Подключить (Connect) - выполнить подключение к серверу. Параметры:
возвращаемые параметры - Булево - успешное подключение;
- метод Отправить (SendData) - отправить данные на сервер. Парамтеры:
- Данные - Строка или ДвоичныеДанные - данные для отправки, может быть пустой;
- Размер - Число - размер двоичных данных, обязательный если первый параметр ДвоичныеДанные;
возвращаемые параметры - Булево - успешная отправка;
- метод ОтправитьАсинхронно (SendDataAsync) - отправить данные на сервер с ожиданием ответа (доступно только в лицензионном режиме). Парамтеры:
- Данные - Строка или ДвоичныеДанные - данные для отправки, может быть пустой;
- Размер - Число - размер двоичных данных, обязательный если первый параметр ДвоичныеДанные;
- Таймаут - Число - тайм-аут ожидания ответа в мс, необязательный, значение по умолчанию 10000
возвращаемые параметры - Строка - строка с данными ответа;
Дополнительные свойства и методы:
- метод УстановитьОповещениеНаСервере (RegEventOnServer) - установка "обратного" подключения к базе, и регистрация серверного глобального метода, который будет вызван при генерации события компоненты. Параметры:
- Конектор - Строка - имя класса ком-соединителя 1С (типа "V83.ComConnector");
- ПараметрыБазы - Строка - строка соединения с базой (синтаксис соответствует синтаксису описанному в справке 1С);
- ИмяМетода - Строка - имя экспортного метода (процедуры), находящейся в глобальном северном модуле с установленным свойством "Внешнее соединение";
возвращаемой значение - Булево - при успешном подключении и регистрации = Истина. Метод возможно использовать как при клиентском, так и при серверном подключения внешней компоненты;
- метод УстановитьЗаписьВРегистрСведений (RegEventOnInfoReg) - установка "обратного" подключения к базе, и регистрация записи в указанный регистр сведений, при генерации события компоненты (доступно только в лицензионном режиме). Параметры:
- Конектор - Строка - имя класса ком-соединителя 1С ("V83.ComConnector");
- ПараметрыБазы - Строка - строка соединения с базой (синтаксис соответствует синтаксису описанному в справке 1С);
- ИмяРегистра - Строка - имя периодического регистра сведений (как он задан в конфигураторе), и должен иметь следующую структуру:
- Измерения:
- Идентификатор - Строка(32) - идентификатор события;
- Источник - Строка(100) - AddIn-имя компоненты источника событий;
- Событие - Строка(100) - имя события;
- Ресурсы:
- Данные - Строка (Неограниченная длинна) - данные события;
- Измерения:
возвращаемой значение - Булево - при успешном подключении и регистрации = Истина. Метод возможно использовать как при клиентском, так и при серверном подключения внешней компоненты. Выполнение в отдельном потоке;
- метод ОтменитьСерверныеОповещения (UnregEvents) - отменяет регистрацию серверных вызовов установленными методами УстановитьОповещениеНаСервере, УстановитьЗаписьВРегистрСведений и закрывает соединение с базой. Выполнение в отдельном потоке;
- метод УстановитьЛицензию (SetupLicense) - он-лайн получение и установка лицензии. Параметры:
- ПинКод - Строка - пин-код лицензии полученный от поставщика данной компоненты, если значение не указано (пустая строка), будет выполнена попытка получения триал лицензии (с ограничением по сроку в 1 мес);
- Результат - Строка - (выходной параметр) помещается jSON структура с описанием лицензии;
возвращаемой значение - Булево - успешно или нет. Для каждого вида лицензии (полная, триал) доступно 3 попытки получения и установки. В случае серверного использования компоненты, данный метод необходимо выполнить в контексте сервера; итого, если предполагается использование компоненты, и на клиенте, и на сервере, необходимо выполнить две установки.
- метод ПолучитьИнформациюОЛицензии (GetLicenseInfo) - получение структуры с описанием лицензии. Параметры:
- Результат - Строка - (выходной параметр) помещается jSON структура с описанием лицензии;
возвращаемой значение - Булево - успешно или нет.
Перечень событий оповещений:
- "Ошибка" - в данных события содержится текст с описанием ошибки;
- "Лицензия" - данные события содержит описание событий связанных с лицензией;
- "Сообщение" - получено сообщение (ответ) от сервера содержащий текстовые данные;
- "Base64Сообщение" - получено сообщение (ответ) от сервера содержащий двоичные данные (данные представлены в base64 строке);
- "Подключено" - событие об успешном подключении к серверу, данные содержат IP сервера либо информацию о нем;
- "Отключено" - событие об успешном отключении, данные содержат код состояния;
Северные оповещения выполняются в отдельном потоке используя промежуточный буфер;
Файл (архив) поставки содержит тестовую обработку с примерами, и саму компоненту в виде архива для загрузки в макет конфигурации (x86 и x64 версии).
Для подключения к серверам работающими в режиме защищенного соединения (wss TLS), необходимо скачать и установить библиотеки OpenSSL (libeay32.dll, ssleay32.dll) нужной разрядности.