Перейти к основному содержимому

WebSocket

Модуль 1С/OSOPI_WebSocketКоманда CLIws#Использоватьoint/api/ws

Этот раздел посвящен библиотеке для работы с 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.ОстановитьСервер(Сервер);

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

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