Внешняя компонента WebSocket Клиент (x86 x64)

12.10.23

Разработка - Разработка внешних компонент

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

Скачать файлы

Наименование Файл Версия Размер
Внешняя компонента WebSocket Клиент (x86 x64) v3.0
.7z 3,62Mb
4
.7z 3.0.2 3,62Mb 4 Скачать
Внешняя компонента для работы по Web-socket протоколу v. 1 (не поддерживается)
.zip 1,44Mb
25
.zip 1.1.0.1 1,44Mb 25 Скачать
Внешняя компонента (x32) для работы по Web-socket протоколу v. 2 (не поддерживается)
.zip 2,10Mb
54
.zip 2.0.1.1 2,10Mb 54 Скачать
Внешняя компонента (x64) для работы по Web-socket протоколу v. 2 (не поддерживается)
.zip 2,68Mb
53
.zip 2.0.1.1 2,68Mb 53 Скачать
v8napi.pas (x86 x64) v3.1
.pas 46,62Kb
19
.pas 3.1.2 46,62Kb 19 Скачать

Компонента работает в синхронном режиме (обновлено) "Запрос-Ответ", при этом выполняется стабильное удержание подключения с сервером (как в случае 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) - выполнить подключение к серверу. Параметры:
    • URL - Строка - полный путь на сервере (например "wss://ws-api.exmo.com/v1/public") (если не указан, используется значение из одноименного глобального свойства);
    • Таймаут - Число - тайм-аут подключения, мс (не обязательный) (если не указан, используется из свойства);

возвращаемые параметры - Булево - успешное подключение;

  • метод Отправить (SendData) - отправить данные на сервер. Парамтеры:
    • Данные - Строка или ДвоичныеДанные - данные для отправки, может быть пустой;
    • Размер - Число - размер двоичных данных, обязательный если первый параметр ДвоичныеДанные;

возвращаемые параметры - Булево - успешная отправка;

  • метод ОтправитьАсинхронно (SendDataAsync) - отправить данные на сервер с ожиданием ответа (доступно только в лицензионном режиме). Парамтеры:
    • Данные - Строка или ДвоичныеДанные - данные для отправки, может быть пустой;
    • Размер - Число - размер двоичных данных, обязательный если первый параметр ДвоичныеДанные;
    • Таймаут - Число - тайм-аут ожидания ответа в мс, необязательный, значение по умолчанию 10000

возвращаемые параметры - Строка - строка с данными ответа;

Дополнительные свойства и методы:

  • метод УстановитьОповещениеНаСервере (RegEventOnServer) - установка "обратного" подключения к базе, и регистрация серверного глобального метода, который будет вызван при генерации события компоненты. Параметры:
    • Конектор - Строка - имя класса ком-соединителя 1С (типа "V83.ComConnector");
    • ПараметрыБазы - Строка - строка соединения с базой (синтаксис соответствует синтаксису описанному в справке 1С);
    • ИмяМетода - Строка - имя экспортного метода (процедуры), находящейся в глобальном северном модуле с установленным свойством "Внешнее соединение";

возвращаемой значение - Булево - при успешном подключении и регистрации = Истина. Метод возможно использовать как при клиентском, так и при серверном подключения внешней компоненты;

  • метод УстановитьЗаписьВРегистрСведений (RegEventOnInfoReg) - установка "обратного" подключения к базе, и регистрация записи в указанный регистр сведений, при генерации события компоненты (доступно только в лицензионном режиме). Параметры:
    • Конектор - Строка - имя класса ком-соединителя 1С ("V83.ComConnector");
    • ПараметрыБазы - Строка - строка соединения с базой (синтаксис соответствует синтаксису описанному в справке 1С);
    • ИмяРегистра - Строка - имя периодического регистра сведений (как он задан в конфигураторе), и должен иметь следующую структуру:
      • Измерения:
        1. Идентификатор - Строка(32) - идентификатор события;
        2. Источник - Строка(100) - AddIn-имя компоненты источника событий;
        3. Событие - Строка(100) - имя события;
      • Ресурсы:
      1. Данные - Строка (Неограниченная длинна) - данные события;

возвращаемой значение - Булево - при успешном подключении и регистрации = Истина. Метод возможно использовать как при клиентском, так и при серверном подключения внешней компоненты. Выполнение в отдельном потоке;

  • метод ОтменитьСерверныеОповещения (UnregEvents) - отменяет регистрацию серверных вызовов установленными методами УстановитьОповещениеНаСервереУстановитьЗаписьВРегистрСведений и закрывает соединение с базой. Выполнение в отдельном потоке;
  • метод УстановитьЛицензию (SetupLicense) - он-лайн получение и установка лицензии. Параметры:
    • ПинКод - Строка - пин-код лицензии полученный от поставщика данной компоненты, если значение не указано (пустая строка), будет выполнена попытка получения триал лицензии (с ограничением по сроку в 1 мес);
    • Результат - Строка - (выходной параметр) помещается jSON структура с описанием лицензии;

возвращаемой значение - Булево - успешно или нет. Для каждого вида лицензии (полная, триал) доступно 3 попытки получения и установки. В случае серверного использования компоненты, данный метод необходимо выполнить в контексте сервера; итого, если предполагается использование компоненты, и на клиенте, и на сервере, необходимо выполнить две установки.

  • метод ПолучитьИнформациюОЛицензии (GetLicenseInfo) - получение структуры с описанием лицензии. Параметры:
    • Результат - Строка - (выходной параметр) помещается jSON структура с описанием лицензии;

возвращаемой значение - Булево - успешно или нет.

Перечень событий оповещений:

  • "Ошибка" - в данных события содержится текст с описанием ошибки;
  • "Лицензия" - данные события содержит описание событий связанных с лицензией;
  • "Сообщение" - получено сообщение (ответ) от сервера содержащий текстовые данные;
  • "Base64Сообщение" - получено сообщение (ответ) от сервера содержащий двоичные данные (данные представлены в base64 строке);
  • "Подключено" - событие об успешном подключении к серверу, данные содержат IP сервера либо информацию о нем;
  • "Отключено" - событие об успешном отключении, данные содержат код состояния;

Северные оповещения выполняются в отдельном потоке используя промежуточный буфер;

Файл (архив) поставки содержит тестовую обработку с примерами, и саму компоненту в виде архива для загрузки в макет конфигурации (x86 и x64 версии).

Для подключения к серверам работающими в режиме защищенного соединения (wss TLS), необходимо скачать и установить библиотеки OpenSSL (libeay32.dll, ssleay32.dll) нужной разрядности.

websocket вебсокет

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15657    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17424    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25687    9    0    

7

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52055    34    69    

43
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. azubar 45 06.04.18 22:48 Сейчас в теме
Нашел способ работать с WebSocket из 1С используя хтмл поле, надо применить фикс:
<met a http-equiv="X-UA-Compatible" content="IE=Edge" />


Вот код для теста:
<!DO CTYPE html>
<HEAD>
<met a http-equiv="X-UA-Compatible" content="IE=Edge" />
  <met a charset="utf-8" />
  <title>WebSocket Test</title>
</HEAD>

  <sc ript language="javascript" type="text/javascript">

  var wsUri = "ws://echo.websocket.org/";
  var output;

  function init()
  {
    output = document.getElementById("output");
    testWebSocket();
  }

  function testWebSocket()
  {
    websocket = new WebSocket(wsUri);
    websocket.on open = function(evt) { onOpen(evt) };
    websocket.on close = function(evt) { onClose(evt) };
    websocket.on message = function(evt) { onMessage(evt) };
    websocket.on error = function(evt) { onError(evt) };
  }

  function onOpen(evt)
  {
    writeToScreen("CONNECTED");
    doSend("WebSocket rocks");
  }

  function onClose(evt)
  {
    writeToScreen("DISCONNECTED");
  }

  function onMessage(evt)
  {
    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
    websocket.close();
  }

  function onError(evt)
  {
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
  }

  function doSend(message)
  {
    writeToScreen("SENT: " + message);
    websocket.send(message);
  }

  function writeToScreen(message)
  {
    var pre = document.createElement("p");
    pre.style.wordWrap = "break-word";
    pre.innerHTML = message;
    output.appendChild(pre);
  }

  window.addEventListener("load", init, false);

  </sc ript>

  <h2>WebSocket Test</h2>

  <div id="output"></div>
Показать
2. Ditron 183 10.04.18 10:37 Сейчас в теме
(1) Как вариант, но не совсем то... просто отправить строку и вывести ответ, да, а получать постоянные события (буферизируемые), потому-как их может быть много (ответов).
3. azubar 45 11.04.18 13:39 Сейчас в теме
(2) Какие методы поддерживает компонента? можно более детальное описание?
4. Ditron 183 11.04.18 17:54 Сейчас в теме
(3) Конечно!
Методы:
1. Подключить(Домен, Порт, Параметры, TLS, ИмяЛогФайла):
Домен - (строка) сервер wss;
Порт - (число) номер порта;
Параметры - (строка) например: "/login.php?domain=domain.com&apikey=jsefagielfegfiufeg"...
TLS - (булево) принудительное включение защищенного соединения TLS;
ИмяЛогФайла - (строка) полный путь и имя к лог файлу (если пустая строка, не ведется).
2. Отключить()
3. Отправить(Данные):
Данные - (строка) отправляемые данные.

Свойства (устанавливаются только при не активном соединении):
1. ГлубинаБуфераСобытий - (число) буфер событий "Внешнее событие" в 1С
2. Домен - (строка) установка свойства "Домен"
3. Порт - (число) установка свойства "Порт"
4. Параметр - (строка) установка строки параметра (см. выше)

События приходящие "ВнешнееСобытие" (Источник - "WssExt"):
1. Событие - "Ошибка", Данные - текст ошибки;
2. Событие - "Подключено", Данные - IP адрес сервера;
3. Событие - "Отключено", Данные - код состояния;
4. Событие - "Сообщение", Данные - текст строки ответа на запрос отправки
5. Ditron 183 19.04.18 17:50 Сейчас в теме
Исправлены ошибки для подключений по SSL (TLS), добавлено свойство TLS (изменения доступны только при отключенном состоянии)
9. Ditron 183 16.05.18 12:40 Сейчас в теме
(5)
<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
<component os="Windows" path="phonet.dll" type="native" arch="i386"/>
<component os="Windows" path="phonet.dll" type="native" arch="x86_64"/>
</bundle>
6. mszsuz 321 16.05.18 05:38 Сейчас в теме
Покажите, пож-ста, манифест
8. Ditron 183 16.05.18 12:39 Сейчас в теме
(6) манифест для добавления в архив макета?
10. Ditron 183 17.05.18 13:55 Сейчас в теме
(6) прошу прощения, в манифесте не то имя файла компоненты, но структура та-же ))
7. Ditron 183 16.05.18 12:39 Сейчас в теме
манифест для добавления в архив макета?
11. puple_ast 8 07.08.18 16:04 Сейчас в теме
При подключении к нашему сервису выходит сообщение

Ошибка. Error Decoding Header: Switching Protocols


Дайте документацию ...
На тестовых примерах не работает.
12. Ditron 183 08.08.18 10:50 Сейчас в теме
(11)Такая ошибка может быть из-за шифрования, если у вас защищенное соединение используйте свойство TLS, перед установкой соединения. И в инструкции к установке (файла поставки) сказано "Если используется вариант подключения по SSL (TLS), библиотеки libeay32 должны быть скопированы в папку установки 1С (bin)"
13. Ditron 183 08.08.18 10:52 Сейчас в теме
(11)
Методы:
1. Подключить(Домен, Порт, Параметры, TLS, ИмяЛогФайла):
Домен - (строка) сервер wss;
Порт - (число) номер порта;
Параметры - (строка) например: "/login.php?domain=domain.com&apikey=jsefagielfegfiufeg"...
TLS - (булево) принудительное включение защищенного соединения TLS;
ИмяЛогФайла - (строка) полный путь и имя к лог файлу (если пустая строка, не ведется).
2. Отключить()
3. Отправить(Данные):
Данные - (строка) отправляемые данные.

Свойства (устанавливаются только при не активном соединении):
1. ГлубинаБуфераСобытий - (число) буфер событий "Внешнее событие" в 1С
2. Домен - (строка) установка свойства "Домен"
3. Порт - (число) установка свойства "Порт"
4. Параметр - (строка) установка строки параметра (см. выше)
5. TLS - защищенное соединение (https)

События приходящие "ВнешнееСобытие" (Источник - "WssExt"):
1. Событие - "Ошибка", Данные - текст ошибки;
2. Событие - "Подключено", Данные - IP адрес сервера;
3. Событие - "Отключено", Данные - код состояния;
4. Событие - "Сообщение", Данные - текст строки ответа на запрос отправки
14. Ditron 183 08.08.18 10:53 Сейчас в теме
(11)Если что-то не получиться, дайте ссылку на сервис и параметры авторизации, я протестирую и скажу в чем причина
15. mr_best_23rus 30 07.09.18 11:45 Сейчас в теме
Хорошую штукенцию наваяли ! Может пригодится.
16. Ditron 183 08.09.18 00:08 Сейчас в теме
(15)Так как то спонтанно получилось, писал под заказчика для софт-фона, и как оказалось альтернативы и аналогов нигде нет, вот и решил запилить универсал для людей...
17. mr_best_23rus 30 08.09.18 06:42 Сейчас в теме
(16) Сколько соединений она тянет одновременно на рабочих проектах ?
18. Ditron 183 08.09.18 10:29 Сейчас в теме
(17)у меня клиент, под которого изначально писал компоненту, 10 человек работают в софт-фоне (работающем на этой компоненте) проблем нет! Суть в том что компонента подключается под каждым пользователем на клиенте, хотя можно и на сервере...
19. Ditron 183 08.09.18 10:30 Сейчас в теме
(17)а если вы про триды (потоки), то она задумана как однопоточная, создается один экземпляр клиента веб-сокет, хотя можно и переделать под многопоточность! ))
51. AlexBax 21.10.19 15:38 Сейчас в теме
(19) Многопоточность реализована?
54. Ditron 183 22.10.19 14:47 Сейчас в теме
55. Ditron 183 22.10.19 14:48 Сейчас в теме
(51)если сильно нужно, можно добавить ))
20. Ditron 183 08.09.18 10:34 Сейчас в теме
А в оригинальной разработке (исходной) https://infostart.ru/public/808432/ реализован механизм телефонных линий внутри самой компоненты, код на паскале работет все равно быстрей чем в 1С ;-)
21. 1739712 23 18.03.19 06:10 Сейчас в теме
добрый день, вопрос
при подключении можно задавать значение параметра origin ?
user709491_gayrat.komilov; +1 Ответить
22. popovm 25.03.19 17:57 Сейчас в теме
добрый день!
есть ли возможность подключиться через прокси?
24. Ditron 183 26.03.19 12:47 Сейчас в теме
26. Ditron 183 26.03.19 12:56 Сейчас в теме
(22)возможность есть, надо доработать, ждите... сообщу
23. popovm 25.03.19 21:24 Сейчас в теме
При подключении через Proxifier выдает сообщение
Ошибка. Исключение, по причине: Error connecting with SSL.
EOF was observed that violates the protocol
25. Ditron 183 26.03.19 12:47 Сейчас в теме
(23)напишите сюда, какие параметры подключения вы задаете
27. novichok20 5 17.09.19 12:26 Сейчас в теме
Добрый день. Скажите первая обработка для самой платформы, а вторая я так понимаю клиент для wss?
Для постоянного прослушивания нужно делать регламентное задание или она способна получать от сервера сообщение? Мне нужно для мои звонки
И скажите если купить код открыт?
28. Ditron 183 17.09.19 12:28 Сейчас в теме
(27) Добрый! обработка там одна (как пример)
29. Ditron 183 17.09.19 12:29 Сейчас в теме
(27) для "мои звонки" подходит, уже был клиент из Питера ) там только надо не забыть библиотеки SSL положить куда надо (они в комплекте)
30. novichok20 5 17.09.19 12:31 Сейчас в теме
Хорошо. А принцип у нее какой? Запрос ответ. Или все таки она может слушать.
У меня просто идея какая. Мне нужно получить входящий звонок и передать в срм
31. Ditron 183 17.09.19 12:34 Сейчас в теме
(30) стабильное соединение по wss - естественно и отправка и прослушка, асинхронное соединение, смотрите пример в обработке, все данные приходят как внешнее событие
32. novichok20 5 17.09.19 12:37 Сейчас в теме
Хорошо. Спасибо. Буду пробовать. Очень необходимо. Хотел писать клиента на Java. Но нашел вас))) если будут вопросы можно будет к вам обратится?
33. Ditron 183 17.09.19 12:39 Сейчас в теме
(32)конечно! Но с мои звонки 100% все будет работать ) Да и с любым wss сервером
34. novichok20 5 17.09.19 12:42 Сейчас в теме
(33)а какую качать? Первую или вторую?
35. Ditron 183 17.09.19 12:50 Сейчас в теме
(34)ну вам же не нужны исходники, вам нужна готовая ) поэтому за 6
36. capwell 104 15.10.19 17:00 Сейчас в теме
Вот хоть бы где нибудь было сказано, что это просто враппер от компоненты esegece! И библиотеку esegece нужно покупать отдельно!
37. Ditron 183 15.10.19 17:17 Сейчас в теме
(36)я ее покупал для написания компоненты, если вы хотите использовать исходники, пожалуйста покупайте...
38. capwell 104 15.10.19 17:33 Сейчас в теме
(37) Так у вас даже sgcWebSockets.dll нет в комплекте
39. Ditron 183 15.10.19 17:42 Сейчас в теме
(38)а с чего вы взяли что она нужна?
40. Ditron 183 15.10.19 17:43 Сейчас в теме
(38)вот именно что это не обертка sgcWebSockets.dll!!
Объясните проблему вообще, или так, "-" чисто поставить на публикацию?
41. capwell 104 15.10.19 17:48 Сейчас в теме
(40) потому что мне нужен был пример исходников, который обрабатывает WebSocket. А у Вас его нет!
Просто перенаправление функций NativeAPI 1С в сторонюю библиотеку не является таким примером.
43. Ditron 183 15.10.19 17:51 Сейчас в теме
(41) т. е. вам нужно написать самому на Win API свой вєб сокет и не морочить мне голову! Вы хотели что бы я вам за 10 СМ выложил низкоуровневый код написанный на WinAPI, вы на Delphi писали вообще, компоненты и классы не используете? так может на асме тогда уже лучше!
46. capwell 104 15.10.19 18:06 Сейчас в теме
(43) Проблема в следующем: Вы нигде не потрудились в описании указать что используется сторонняя библиотека. Я понимаю что у Вас такие методы при продаже продукта, но это не тот случай.
48. Ditron 183 16.10.19 12:19 Сейчас в теме
(46)никаких сторонних библиотек не используется в случае использования конечного продукта (кроме бесплатных ssl входящих в комплект), вы же хотите использовать исходники, в описании к файлу исходников указано, что необходимо...
Прикрепленные файлы:
49. capwell 104 16.10.19 15:39 Сейчас в теме
(48) Описание файла видите только Вы в редакторе, никому это не видно при скачивании.
50. Ditron 183 16.10.19 16:03 Сейчас в теме
(49)это я уже понял, сожалею (
42. capwell 104 15.10.19 17:48 Сейчас в теме
(40) ещё и продаёте по такой цене, как будто что то ценное...
44. Ditron 183 15.10.19 17:55 Сейчас в теме
(42)это мое личное дело, до вас всех устраивало! И прежде чем бочку катить предложите лучший вариант! И я до сих пор не понял, что вас не устраивает?? Любые программы используют классы и компоненты, я пошел наиболее простым и быстрым путем для меня, тем более это вообще побочный продукт... Всего доброго
45. Ditron 183 15.10.19 18:04 Сейчас в теме
(44)ааа, понятно, конкуренция, можно ставить минусов сколько угодно, но внятного объяснения я так и не дождался, чем не устраивает...
47. capwell 104 15.10.19 18:06 Сейчас в теме
(45) ответил, куда уж внятнее.
52. AlexBax 21.10.19 15:43 Сейчас в теме
Подскажите, пожалуйста, компонента только под Windows? 1С работает и под Линуксом, и меня интересует именно эта платформа.
Если под Линуксом не работает, можете ли собрать под Линукс?
Если работает или можете собрать - какие зависимости?
53. Ditron 183 22.10.19 14:46 Сейчас в теме
(52)можно собрать, но проверить не на чем
56. AlexBax 22.10.19 15:52 Сейчас в теме
(53)нужно собрать тогда) Для проверки можно поднять любую свежую сборку одной из вариантов Убунту (Лубунту, Кубунту) на виртуалке например, да и собирать же тоже под линуксом. Платформа 1С под линукс, тоже вроде не проблема.
Но могу проверить и я)
Внесите в код ограничение на период работы например (или любое другое, запрос ввода пароля при создании объекта wss или типа того - для теста пороль ввести не проблема, а использовать в продакшене уже не получится - дежурить у компа каждый раз это не работа)) ), для тестовой версии "под меня".
Если все ОК или исправите в случае если не все - я куплю вашу компоненту.

Если сами протестируете и скажете что работает - я поверю на слово).

Выше спрашивал про реализацию многопоточности - в моем случае будет создаваться несколько фоновых заданий 1С, это отдельные процессы 1С с точки зрения выполнения. В каждом таком фоновом задании будет создаваться соединение wss и читаться поток. Если текущая версия это позволяет, то отлично. Если нет - тогда "если сильно нужно, можно добавить )) " - нужно.

Чтобы было понятно применение - пишу торгового робота для работы с биржей, данные с биржы в режиме реального времени поступают по wss, по каждой паре котировки - свой поток, и отслеживать надо сразу несколько, в идеале все (но конечно в реальности будет от 2 до 10 максимум потоков). Если будет рабочая компонента - все значительно упростится, ибо в противном случае придется устанавливать соединение и принимать поток в файл средствами линукса, а файл уже парсить из 1С.
57. AlexBax 22.10.19 15:56 Сейчас в теме
(56) Да, и забыл - установка соединения wss возможна "на сервере" в терминах 1С?
58. Ditron 183 22.10.19 16:17 Сейчас в теме
(56)под линух соберу, но не так быстро, в течении недели, работы много, на счет многопоточности - если у вас отдельное ФЗ то вообще ничего не нужно дорабатывать, НО!!! - данные приходят как внешнее событие, т.е. асинхронно, тут надо думать, компонента подключится на сервере, но событиям не куда будет приходить
59. Ditron 183 22.10.19 16:21 Сейчас в теме
(56)тут как вариант - дописать немного компоненту и делать обратное подключение через КОМ к 1С (с заведомо предоставленными параметрами) и вызывать вашу серверную процедуру (в глоб модуле с внешн соед) и туда сообщение пихать...
61. AlexBax 22.10.19 18:27 Сейчас в теме
(59)В общем жду весточек о готовности под линукс.
+7 916 218-4162 Александр - вайбер, вотсап, телега - маякните по готовности. Тут на сайте через неделю могу и не зайти - дел то полно.
60. AlexBax 22.10.19 18:19 Сейчас в теме
Главное - соберите под линукс) Клиент-сервер - это я обойду. Ну буду снимать внешнее событие и тут же отправлять на сервер тоже фоновым заданием, чтобы успевать. Главное чтобы работало чтение потока с wss
62. Ditron 183 22.10.19 18:33 Сейчас в теме
63. AlexBax 13.11.19 12:55 Сейчас в теме
(62) Как дела? Линукс сборка будет?
64. zakiap 14.02.20 11:21 Сейчас в теме
А где версия x86_64 ?
в архиве манифест описано wss1c64.dll а самого файла нету
65. Ditron 183 14.02.20 11:40 Сейчас в теме
(64)в манифесте ошибка, была проба скомпилить под х64 не получилось, нужно переписывать библиотеку Native.
В публикации жирным шрифтом сказано, что поддержка только х86!
66. zakiap 17.02.20 09:17 Сейчас в теме
(65)
Да мне она подошла, будет использоваться на клиенте а он 32 бит
67. cprit 872 02.06.20 09:19 Сейчас в теме
Добрый день!
Есть ли сборка под linux?
68. Ditron 183 02.06.20 09:29 Сейчас в теме
69. D_astana 110 10.09.20 20:06 Сейчас в теме
Ошибка "Error connecting with SSL. EOF was observed that violates the protocol". Как я понял библиотеки SSL внутри старые, не работает. Качаешь новые, пишет не удалось загрузить библиотеку ssl
70. Ditron 183 10.09.20 20:08 Сейчас в теме
(69)библиотеки внутри такие которые требует vcl компоненты, все работает
71. D_astana 110 10.09.20 20:10 Сейчас в теме
(70) Может они и те , что vcl требует только они устарели. Сервера с новым TLC не принимают их.:((
72. Ditron 183 10.09.20 20:13 Сейчас в теме
(71)непонятна ваша фраза «новый TLC”, во первых не С а S, во вторых есть версии TLS, предоставьте информацию на какой версии проблема!
75. Ditron 183 10.09.20 20:25 Сейчас в теме
(72)напишите мне завтра...
73. D_astana 110 10.09.20 20:18 Сейчас в теме
Простите не силен в данном вопросе:) Я руководствовался этой ссылкой https://stackoverflow.com/questions/35987485/eidosslconnecterror-error-connecting-with-ssl-eof-was-observed
И мое предположение в следующем. На сервере куда я пытаюсь подключиться стоит более свежаz версия SSL, чем та версия откуда были взяты библиотек. И версии протоколов разные у сервера и у библиотек, которые у вас. Простите если несу чушь. Сижу с веб сокетами 3 часа всего, еще может не совсем въехал в тему.
74. Ditron 183 10.09.20 20:22 Сейчас в теме
(73)нужно точно знать какая версия на сервере, и тогда можно что-то решить
76. D_astana 110 10.09.20 20:26 Сейчас в теме
(74)Вот что удалось найти
Sec-WebSocket-Version 13
Версия протокола: "TLSv1.2"
Схема подписи: "RSA-PSS-SHA256"
Форсированное защищённое соединение HTTP (HSTS): "Включена"
Набор шифров: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Привязка открытого ключа: "Отключено"
77. Ditron 183 10.09.20 20:27 Сейчас в теме
78. D_astana 110 10.09.20 20:28 Сейчас в теме
(77) Ладно. Буду пробовать, что нить еще. Спасибо за уделенное время.
79. Ditron 183 10.09.20 20:41 Сейчас в теме
80. Ditron 183 11.09.20 10:59 Сейчас в теме
(76)будет вам счастье! К концу дня выложу новую редакцию с поддержкой новых версий TLS...
81. D_astana 110 11.09.20 14:41 Сейчас в теме
(80) Спасибо. Пока сделал через HTML на JavaScript, но так не работает в регламентных заданиях, только на форме. Жду компоненту.
82. Ditron 183 11.09.20 15:04 Сейчас в теме
(81)выложил v2, но вот меня смутило:

(81)
но так не работает в регламентных заданиях
для работы с веб-сокетами регл. задание не катит! Понимаешь-ли соединение как в TCP, то-есть устойчивое соединение с асинхронной передачей данных - "Отправил запрос" - "Ждешь ответа", тем более данные от компоненты приходят внешним событием...
83. D_astana 110 11.09.20 17:55 Сейчас в теме
(82) Ну да, вы правы. Что-то не подумал сразу. Тогда на html оставлю, тем-более он не критичен будет в будущем к обновлениям ssl.
84. user1501567 24.12.20 11:18 Сейчас в теме
добрый день !
компонента сможет работать в системах Линукс, МАК и Виндовс ?
еще момент, компонента сможет работать в формате тонкого клиента или веб-клиента.

на просторах интернета нашел такой проект https://github.com/staskobzar/amiws, как понял из описания запросы из Астериск по AMI переводит в web-socket и далее передает(и принимает) в формате JSON, пример от создателя ниже. Сможет ли ваша компонента работать с таким запросом.
{
"type": 3,
"server_id": 1,
"server_name": "asterisk01.local",
"ssl": false,
"data": {
"Event": "Hangup",
"Privilege": "call,all",
"Channel": "SIP/sipp-00000a6a",
"ChannelState": "6",
"ChannelStateDesc": "Up",
"CallerIDNum": "16464964806",
"CallerIDName": "Alice",
"ConnectedLineNum": "<unknown>",
"ConnectedLineName": "<unknown>",
"Language": "en",
"AccountCode": "",
"Context": "from-sip",
"Exten": "55213477583",
"Priority": "8",
"Uniqueid": "1495919040.5315",
"Linkedid": "1495919040.5315",
"Cause": "0",
"Cause-txt": "Unknown"
}
}
85. Ditron 183 26.12.20 17:40 Сейчас в теме
(84)на данный момент есть только под Win (под линух точно не будет, под МАК можно попробовать скомпилить, только проверить не на чем), работает хоть под тонким хоть под веб, хоть на сервере, как подключите так и будет!)
на счет обмена, ей все равно какие данные вы будете отправлять и принимать )
86. Ditron 183 26.12.20 17:41 Сейчас в теме
(84)и на счет астериска, на сколько мне известно у него есть свой веб-сокет сервер
87. teu 12.03.21 12:49 Сейчас в теме
Возможно добавить поддержку установки хедера? Нужен Authentication BEARER....
88. Ditron 183 12.03.21 13:07 Сейчас в теме
(87)теоретически, надо посмотреть....
89. Ditron 183 12.03.21 13:08 Сейчас в теме
(87)то есть нужно возможность добавлять свои хидеры?
90. teu 12.03.21 13:12 Сейчас в теме
91. somel 258 14.05.21 09:53 Сейчас в теме
Добрый день.
Купил у вас "Внешняя компонента (x64) для работы по Web-socket протоколу v. 2"
И ничего не работает.
В коде вообще идет обращение в пути к библиотекам где установлено делфи, закоменченные обращения к макета, где поидее компанента должна быть пустые.

Просьба помочь объяснить, как устанавливать, регистрировать библиотеки и их использовать.
Прикрепленные файлы:
92. Ditron 183 14.05.21 09:55 Сейчас в теме
(91) Добрый день! ) ну так либо ваш путь где лежит dll либо макет с архивом и манифестом
93. Ditron 183 14.05.21 10:02 Сейчас в теме
(91)то есть, если вы подключаете компоненту с диска, укажите свой путь куда ее положили, если интеграция будет в конфигурацию, то можно создать архив (dll + манифест) и положить его в общий макет (или макет обработки) и указать путь к макету (см. закоменченные строки). Как создать манифест: https://its.1c.ru/db/metod8dev#content:3221:hdoc:manifest
Подключение из макета для внешней обработки (если макет во внешней обработке) не получится
94. somel 258 14.05.21 13:30 Сейчас в теме
(93) Отлично! Разобрался.
А как можно заголовки для авторизации передать? http.Header{"Authorization": {"Bearer " + *token}})
т.е. есть пример, сервиса, как это должно выглядеть

package main

import (
"flag"
"log"
"net/http"

"github.com/gorilla/websocket"
)

var addr = flag.String("addr", "wss://api-invest.tinkoff.ru/openapi/md/v1/md-openapi/ws", "http service address")
var token = flag.String("token", "", "API token")

func main() {
flag.Parse()

c, _, err := websocket.DefaultDialer.Dial(*addr, http.Header{"Authorization": {"Bearer " + *token}})
if err != nil {
log.Fatal("dial:", err)
}
defer c.Close()

go func() {
for {
_, message, err := c.ReadMessage()
if err != nil {
log.Println("read: ", err)
return
}
log.Printf("recv: %s\n", message)
}
}()

const sub = `{"event": "orderbook:subscribe", "figi": "BBG0013HGFT4", "depth": 10}`
err = c.WriteMessage(websocket.TextMessage, []byte(sub))
if err != nil {
log.Println("write: ", err)
return
}

select {}
}
95. Ditron 183 14.05.21 13:33 Сейчас в теме
(94) к сожалению данного функционала пока нет (
96. somel 258 14.05.21 13:39 Сейчас в теме
Мда...печально, так бесполезная покупка получается. А можете доработать? за оплату конечно.
97. Ditron 183 14.05.21 13:42 Сейчас в теме
(96) я уже работаю над этим вопросом... уже была просьба в комментариях выше
100. user600137_va13ak 15.06.21 15:29 Сейчас в теме
(97) Добрый. И какие перспективы по заголовкам?
101. Ditron 183 15.06.21 15:41 Сейчас в теме
Оставьте свое сообщение