Заметки из Зазеркалья

25.06.2024

Поддержка протокола WebSocket

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.3.27

По многочисленным просьбам разработчиков, использующих платформу 1С:Предприятие, в версии 8.3.27 появится поддержка протокола WebSocket.

Объект метаданных WebSocket-клиент

Помимо динамической работы с протоколом WebSocket из программного кода будет также возможность создания в конфигурации объектов метаданных типа WebSocket-клиент (в разделе «Общие» дерева метаданных). У объекта WebSocket-клиент есть модуль, в котором можно написать код обработчиков:
img-01.png
Работать из кода с объектами метаданных типа WebSocket-клиент можно будет на сервере, в толстом клиенте и внешнем соединении. 

Встроенный язык

Встроенный язык будет расширен новыми объектами для поддержки протокола WebSocket. Описание сценария работы с протоколом WebSocket из встроенного языка:

  • Создается WebSocket-соединение с указанием URI WebSocket-сервера, с которым мы будем работать.
  • У WebSocket-соединения можно указать обработчики событий, вызываемых при открытии, получении сообщения, закрытии и возникновения ошибки в соединении.
  • После установки соединения внешний WebSocket-сервер может посылать сообщения в приложение 1С, при получении сообщения в приложении 1С будет вызываться соответствующий обработчик.
  • Пересылка данных (строка или двоичные данные) из приложения 1С выполняется через открытое WebSocket-соединение.

Инициатором общения является приложение 1С, выступающее как WebSocket-клиент.
Создавать клиентские WebSocket-соединения можно будет в толстом, тонком, веб-клиенте и на сервере.

Функция «Управление WebSocket-клиентами» для технических специалистов

В «Функции для технического специалиста» добавлена функция «Управление WebSocket-клиентами». Это может быть востребовано, в частности, в сценариях, когда на внедрении есть несколько однотипных WebSocket-серверов, с которыми приложение 1С обменивается данными.
img-02.png

Сценарии использования

В первую очередь использование протокола WebSocket в приложениях 1С позволит реализовать широкий спектр задач интеграции без использования внешних компонентов, в частности:

  • Интеграция с сервисами телефонии
  • Интеграция с сервисами электронной цифровой подписи
  • Интеграция с брокерами сообщений (RabbitMQ, ZeroMQ и т.д.)

Станет возможным быстрый обмен сообщениями c приложениями, поддерживающими протокол WebSocket – система мгновенного обмена сообщениями Discord, встраиваемый веб-сервер Mongoose, веб-сервер и сервер приложений Barracuda, веб-сервер и сервер приложений Resin, брокером сообщений Lightstreamer и т.д.

Протокол WebSocket устанавливает одно соединение и передаёт ответ на запрос в тот момент, когда ответ появился, без дополнительных запросов, как у HTTP-протокола. Запросы и ответы приходят без задержек и сетевой нагрузки. Протокол WebSocket можно использовать там, где скорость обмена сообщениями критична. Например, если мы разрабатываем веб-сайт наподобие кабинета клиента, где отображаются различные метрики из инфобазы 1С (обновление статусов, публикация уведомлений и т.д.) – использование протокола WebSocket будет оптимальным решением.

Теги: 8.3.27 

Рассказать друзьям: