Внешняя компонента WebSocket для 1С (c поддержкой Authorization token bearer)

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

Арт.: 1247713

Продано: 18

Capture5.PNG
Снимок_Обработка1.PNG
Снимок_Обработка2.PNG
Capture5.PNG
Снимок_Обработка1.PNG
Снимок_Обработка2.PNG

4440 руб.

3000 руб.

Функционал разработки:

URL - адрес хоста для подключения веб-сокет (ws или wss).

Токен - Ваш токен авторизации (authorization bearer token) если он требуется (указывается без префикса "bearer" ).

Заголовки - список "кастомных" http-заголовков, которые могут быть добавлены при соединении. Колонка Name - имя заголовка, Value - значение.

"Открыть соединение" - открывает соединение по веб-сокет.

"Включить TLS12" - 'насильно' использовать TLS (1.1 и 1.2) при шифрованном соединении (если будут ошибки "удаленный хост неожиданно разорвал существующее подключение" или "не возможно создать защищённое соединение")

"Отправить команду" - отправляет текст команды по веб-сокет.

"Закрыть соединение" - закрывает соединение по веб-сокет.


Инструкция по установке: прилагается при скачивании.


Особенности:

Взаимодействие с внешней компонентой реализовано по асинхронному паттерну. Со стороны 1С необходимо вызывать методы "НачатьВызов<ИмяМетода>", где ИмяМетода - это имя определенного метода API компоненты. 1С принимает данные от компоненты через обработчик "ВнешнееСобытие". Пример взаимодействия можно посмотреть в приложенной обработке. 

 

API компоненты:

методы:

bool OpenConnection(str url, str token="", str[] headers = null) - открывает соединение с веб-сокет по url, используя token (если введен). Массив строк headers ("неопределено" по умолчанию) - массив своих заголовков, если необходимо. Пример передачи можно увидеть в обработке. В результате, в обработчик "ВнешнееСобытие" должно прийти событие с именем CоnnectionOpenEvent.

bool PutCommand(string cmd="") - посылает команду cmd по веб-сокет. В результате в обработчик "ВнешнееСобытие" должно прийти событие с именем SendCommandEvent, также после этого присылается еще одно с именем "ReceiveResponseEvent" с  данными ответа от веб-сокет.

bool CloseConnection() - закрывает текущее соединение. В результате в обработчик "ВнешнееСобытие" должно прийти событие с именем ConnectionCloseEvent.

string GetStatusAndData() - получает в виде строки информацию о признаке соединения (IsStarted) и количестве сообщений в очереди ещё не отправленных команд (CommandCount) и ответов (ResponseCount). Формат получаемой строки следующий: "[КлючСвойства1]:[ЗначениеCвойства1];[КлючСвойства2]:[ЗначениеCвойства2]...".

void SetSecuryProtocolTLS(bool Enable = true) - добавляет использование компонентой протоколов защищенного соединения TLS 1.1 и TLS 1.2 если параметр Enable = true (по умолчанию). Данный метод, возможно, необходимо использовать на некоторых системах если наблюдаются соответствующие ошибки при создании соединения.

Текущая версия:

1.3 - исправлена ошибка с обработкой принимаемых сообщений ws

Тестирование:

Разработка проверялась на ОC Windows 10 Enterprise с версией платформы 1С 8.3.15.1489. Для работы необходим установленный .Net Framework v4.5 (начиная с Windows 8 установлен "по умолчанию", то есть для более новых фреймворков компонента должна работать). Видео работы

*не работает на OC Windows 7/Windows 2008 Server - из-за технических ограничений, Microsoft не стала поддерживает сокеты нативно на этой ОС. Возможно, в будущем это ограничение будет исправлено в компоненте.

Доп. возможности:

Компонента может накапливать в себе очередь команд (их количество можно получить через метод GetStatusAndData, описанный выше) до подключения к веб-сокет, как только соединение будет установлено, эти команды будут обработаны.

Статистика:
Просмотры 18121
Загрузки 18
Рейтинг 22
Создание 22.06.20 08:10
Обновление 27.11.22 20:25
№ Публикации 1247713
Характеристики:
Теги

WebSocket Веб-сокет Token authorization web-socket AddIn

Рубрики Разработка внешних компонент
Кому Программист
Тип файла Компонента, плагин (dll, vbs,..)
Платформа Платформа 1С v8.3
Конфигурация Конфигурации 1cv8
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Платные (руб)
Код открыт Нет
1. Техподдержка 11.09.20 10:41
Api по протоколу http (типа http://localhost:4444/queue), не поддерживаются.
2. kirg2017 26.04.21 00:07 Сейчас в теме
Добрый день. Нужна помощь.

Win 10, 64. При регистрации получаю ошибку регистрации под правами администратора (в файле).

WebSocket.dll В папках System32 и SysWOW64 уже есть, перезаписать не дает.

Попытка записать файл в C:\Program Files (x86)\1cv8\8.3.17.1386\bin и запуск 1С под правами администратора тоже не решил проблему.

Что нужно сделать, чтобы обработка заработала?
Прикрепленные файлы:
Ошибка_20210425232246.zip
4. Техподдержка 13.06.21 12:49
(2) Чтобы зарегистрировать компоненту, Вам нужны выполнить инструкции по ее регистрации из соответствующего файла из поставки.
3. kirg2017 29.04.21 12:40 Сейчас в теме
Обработка в поставке и обработка на скринах в примере отличается наличием шифрования (в поставке шифрования нет).
5. magnumuz 08.09.21 16:02 Сейчас в теме
Добрый день.
Имеются вопросы:
1) Будет ли данная библиотека работать с SocketIO
2) Во время интеграции в 1С если потребуется тех помощь будет ли она предоставлена?
6. Техподдержка 08.09.21 22:24
1) Если вы про сервер node.js , поднятый на этой библиотеке - без понятия. Но что мне подсказывает что -не особо

2) Преимущественно через переписку + не всегда могу отвечать "быстро".
7. Kostiki1 10.12.21 14:25 Сейчас в теме
Подскажите, будет ли компонента получать сообщения, отправленные с Web-Socket сервера? Те, которые сервер отправил сам, без изначального запроса от компоненты.
8. Техподдержка 10.12.21 22:12
(7) Это и позволяет этот протокол на сколько мне известно. Я тестировал эту компоненту с биржей когда реализовывал. Схема следующая: компонента подключается к серверу (клиент инициализирует сокет) после этого сервер шлёт сообщения, их принимала обработка из публикации.
9. andy_zhav 14.12.21 11:09 Сейчас в теме
Подскажите, в чем может быть проблема: При отправке любой команды сокету происходит обрыв соединения и реконнект.
соединение у нас такого вида: ws://tsip.host.ru:27800?token=xlUdhIIhijw5np2EGsxBpfHxD6v5apbY45u6t7aBYbSCZ............ Происходит без ошибок, данные от сокета получаются нормально.

Ошибок от компоненты в момент разрыва не поступает. Со стороны сервера веб сокета проверили - ошибок нет.
11. Timow 06.01.22 13:32 Сейчас в теме
Подскажите, будет ли ВК работать с 1С 7.7?
13. Техподдержка 08.01.22 16:17
(11)
1С 7.7
С версией 1с 7.7 не тестировалось.
14. user1055291 08.02.22 16:52 Сейчас в теме
Добрый день, после подключения сворачивает тонкий клиент. Пишет "ПослеВызоваOpenConnection:yes" и закрывает клиент.
15. Техподдержка 09.02.22 09:04
(14) Пользуетесь обработкой из примера ? Какая версия платформы и битность?
19. Техподдержка 09.03.22 13:05
(15) Ошибка исправлена - была неточность в скрипте регистрации (readme.txt).Обновлено
16. user1276742 09.02.22 09:57 Сейчас в теме
(15) 8.3.16.1876 обработка из примера, 64х
17. user1276742 09.02.22 11:23 Сейчас в теме
так же не регистируется в веб клиенте (из зип архива с манифестом)
18. user1055291 09.02.22 12:34 Сейчас в теме
(17) по этому вопросу разобрался, нужно как плагин делать.
20. amon_ra 17.03.22 22:34 Сейчас в теме
Добрый день! Заголовки поддерживаются в компоненте?
21. Техподдержка 18.03.22 10:23
Если имеется ввиду добавление своих - то нет, но думаю что можно добавить.
(20)
22. amon_ra 18.03.22 16:34 Сейчас в теме
(21) да, имеется ввиду добавление своих заголовков. доработка внешней компоненты для своих заголовков предвидится?
23. Техподдержка 19.03.22 20:03
(22) Да, я тогда добавлю такую возможность в ближайшее время (1 неделя примерно).
25. пользователь 25.07.22 11:58
Сообщение было скрыто модератором.
...
26. пользователь 26.07.22 10:55
Сообщение было скрыто модератором.
...
27. gull 20.10.22 12:42 Сейчас в теме
Здравствуйте. Купил вашу dll-ку для связи с биржей через api алор. Нужно подписываться на изменения стакана по разным инструментам. И что-то не выходит. Подключаться-подключается, но во внешнее событие ничего не приходит. Не подскажете что я делаю не так? Мне бы просто пример получения данных с этого api. Или хоть подскажите в какую сторону копать... https://alor.dev/docs
28. Техподдержка 10.11.22 13:12
(27) Очень быстро глянул на этот сервис. Вам нужно сначала авторизовываться (via JWT) и возможно только потом Вам будут приходить ивенты. Данная обработка тестировалась с аналогичными сервисами.
29. mumtoz_bek 15.08.23 20:09 Сейчас в теме
Не удается подключить компонента. Попробовал через макет, через файл dll, зарегистрировал через regasm, ничего не помогает.
30. mumtoz_bek 15.08.23 20:12 Сейчас в теме
(29) пишет "WebSocket : At method OpenConnection was occured exeption:Протокол WebSocket не поддерживается в этой платформе."
31. TimurD 01.09.23 11:03 Сейчас в теме
А если мне нужно параллельно держать несколько соединений, то как понять откуда пришел ответ? Во внешнем событии нет инфы (в параметрах) какойнить ИД класса и пр.
32. Техподдержка 03.09.23 12:29
(31)
Компонента создает одно соединение (всегда один экземпляр) в рамках сеанса 1С. Соответственно и свойства такого в API нет. Для организации нескольких одновременных соединений можно доработать компоненту. Тогда API при открытии нового коннекта будет выдавать его Id, соответсвенно команды можно будет слать указав определенный Id, также ответы будут приходить в паре с Id соединения (во внешнее событие 1C). Если такой вариант работы подходит, можно это реализовать (видимо, в рамках платной поддержки).
33. TimurD 04.09.23 09:53 Сейчас в теме
(32) С "параллельной" работой понятно. Затестил библиотеку на скорость. Отсылаю запрос на подписку данных свечей (биржа), но если послать запрос для 20 акций, вроде все норм, все принимает и пр. А если больше, то скорость в среднем 8-9 сообщений в секунду (замер сделал в Внешнем событии). Во внешнем событии полезного кода нет, только итератор сообщений. При этом в компоненте (в свойстве, в котором храниться количество не обработанных сообщений) свойство ResponseCount увеличивается. Т.е. сервер отвечает нормально (с Тиннькоф работаю), а внешнее событие не успевает(

ПыСы: Придется вспоминать чеготам в плюсах и самому пилить компоненту.
ПыСыПыСы: Хорошо курс пару лет назад купил по плюсам.
34. Техподдержка 05.09.23 20:09
(33)
Да, я Вас наверное понял. Если не устраивает скорость обработки очереди, то могу предоставить версию с улучшенным performance. Если Вам это подойдет, то откройте тикет на поддержку, где я смогу поделится файлом. (Но есть вероятность, что "узкое горлышко" это ВнешнееСобытие 1С)
35. skorm1 23.11.23 09:51 Сейчас в теме
Здравствуйте. При открытии обработки выходит ошибка (см. прикрепленный файл):
Тип не определен (Addin.WebSocketWorker)
{ВнешняяОбработка.РаботаСВебСокетом.Форма.Форма.Форма(64)}: AddIn = Новый("Addin.WebSocketWorker");
Прикрепленные файлы:

Оставьте свое сообщение

См. также

Asterisk API: внешняя компонента для подключения 1С к телефонии

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод зво...

2400 руб.

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с...

3000 руб.

Внешняя компонента GraphQL клиент для 1С

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

Внешняя компонента печати PDF (Native Win 32/64)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

Imagius: конвертация PDF в картинку (Native Win 32/64)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

Мультитул - Инструменты для работы с оборудованием и возможности Python в 1С.

На текущий момент поддерживается tcp клиент и сервер, работа с COM портом(232, 485) в удобном для отладки варианте через HEX-строку и в неизмененном виде, создание modbus запроса через вышеуказанные интерфейсы и дешифровка ответа. Распознав...

6000 руб.

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных ...

7200 руб.

«UniServer AUTO: WeightIndicator» - универсальный драйвер весового индикатора

Универсальный драйвер весового индикатора «UniServer AUTO: WeightIndicator» предназначен для подключения весовых индикаторов автомобильных, вагонных , платформенных весов любых производителей к различным конфигурациям 32-х или 64-х разрядны...

10800 руб.

COMNativeWrapper, COM-Диспетчер Native-компонент 1С (Аддонов), совместимый со всеми версиями 1С (7.7, 8.0, 8.1, 8.2, 8.3).

Обертка COM для компонент типа Native-Addin под разные версии 1С от 8.2 до 8.3 с поддержкой интерфейсов IMsgBox, IAttachInfo, IPlatformInfo. Поддержка свойств компонент имеющих тип Binary. Работает под любыми версиями 1С от 7.7 до 8.3. На п...

4500 руб.

Компонента для 1С, принимающая вес с железнодорожных, автомобильных, крановых весов

Программа "Компонента приёма веса для 1С, версия 3.0" позволяет принимать и заносить вес с весов непосредственно в программу "1С" - то есть, прием веса осуществляется целиком и полностью из программы "1С".

26400 руб.