6.5 KiB
Vendored
id, sidebar_class_name, keywords
| id | sidebar_class_name | keywords | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| WebSocket | 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.ОстановитьСервер(Сервер);
Общие возможности
ПолучитьНастройкиЛогированияиПолучитьЛогпозволяют включать и анализировать лог как для клиента, так и для сервераЭтоОбъектКлиентаиЭтоОбъектСерверапозволяют проверить тип возвращенного объекта- Для детальных параметров каждого метода используйте страницы в разделах Методы клиента, Методы сервера и Общие