1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-05-16 09:38:28 +02:00
Files
OpenIntegrations/docs/ru/md/Instructions/WebSocket.md
T
2026-04-29 11:11:55 +03:00

6.5 KiB
Vendored

id, sidebar_class_name, keywords
id sidebar_class_name keywords
WebSocket WebSocket
1C
1С:Предприятие
1С:Предприятие 8.3
API
Интеграция
Сервисы
Обмен
OneScript
CLI
WebSocket

<img src={require('../../static/img/APIs/WebSocket.png').default} width='64px' />

WebSocket

import LibraryIntro from '@site/src/components/LibraryIntro';

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

Начало работы

WebSocket обеспечивает двусторонний обмен данными поверх одного TCP-соединения. В библиотеке доступны два режима работы:

  • Клиент — подключение к внешнему WebSocket-серверу (ws:// или wss://)
  • Сервер — запуск собственного сервера и обработка входящих подключений

Работа в режиме клиента

Клиентский режим предназначен для подключения к внешним WebSocket-сервисам и дальнейшего обмена сообщениями. Основная точка входа — ОткрытьСоединение. После подключения доступны:

  • отправка текстовых и двоичных сообщений (ОтправитьТекстовоеСообщение, ОтправитьДвоичноеСообщение)
  • получение входящих данных (ПолучитьСообщение)
  • служебные сообщения контроля соединения (ОтправитьПинг, ОтправитьПонг)
  • корректное завершение сессии (ЗакрытьСоединение)
Адрес      = "wss://example.com:443/ws";
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес);

OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Привет, сервер!");
Ответ = OPI_WebSocket.ПолучитьСообщение(Соединение, 5000);

OPI_WebSocket.ЗакрытьСоединение(Соединение);

TLS

TLS в WebSocket используется для защищенных клиентских подключений (wss://). Настройки формируются через ПолучитьНастройкиTls и передаются в ОткрытьСоединение. Если TLS-параметр не передан, соединение открывается без шифрования.

Адрес        = "wss://example.com:443/ws";
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Ложь, "/path/to/certificate.pem");

Соединение   = OPI_WebSocket.ОткрытьСоединение(Адрес, НастройкиTLS);

:::important Настройки TLS применяются только при создании соединения (ОткрытьСоединение). Изменить их для уже открытого соединения нельзя. :::

Прокси

Клиент поддерживает подключение через прокси-сервер. Параметры прокси формируются функцией ПолучитьНастройкиПрокси и передаются в ОткрытьСоединение третьим параметром. Поддерживаются socks5, socks4 и http.

Адрес           = "ws://example.com:80/ws";
НастройкиПрокси = OPI_WebSocket.ПолучитьНастройкиПрокси("127.0.0.1", "8071", "socks5", "user", "pass");

Соединение      = OPI_WebSocket.ОткрытьСоединение(Адрес, Неопределено, НастройкиПрокси);

Работа в режиме сервера

Серверный режим позволяет принимать входящие WebSocket-подключения и обмениваться данными с клиентами. Для работы используются методы управления жизненным циклом сервера и соединений:

  • запуск и остановка (ЗапуститьСервер, ОстановитьСервер)
  • чтение данных (ПолучитьДанныеОчередногоСоединения, ПолучитьДанныеСоединения)
  • отправка ответа в конкретное соединение (ОтправитьДанные)
  • получение списка активных соединений и закрытие конкретного (ПолучитьСписокСоединений, ЗакрытьВходящееСоединение)
Порт        = 8080;
РазмерПула  = 100;
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300);

Сервер = OPI_WebSocket.ЗапуститьСервер(Порт, РазмерПула, Логирование);
Данные = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(Сервер, 1000);

Если Данные["result"] Тогда

    IDСоединения = Данные["connectionId"];
    Сообщение    = Данные["message"];

    OPI_WebSocket.ОтправитьДанные(Сервер, IDСоединения, "Ответ сервера");

КонецЕсли;

OPI_WebSocket.ОстановитьСервер(Сервер);

Общие возможности

  • ПолучитьНастройкиЛогирования и ПолучитьЛог позволяют включать и анализировать лог как для клиента, так и для сервера
  • ЭтоОбъектКлиента и ЭтоОбъектСервера позволяют проверить тип возвращенного объекта
  • Для детальных параметров каждого метода используйте страницы в разделах Методы клиента, Методы сервера и Общие