You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-12 00:34:16 +02:00
Main build (Jenkins)
This commit is contained in:
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
Vendored
+138
@@ -0,0 +1,138 @@
|
||||
---
|
||||
id: WebSocket
|
||||
sidebar_class_name: WebSocket
|
||||
keywords: [1C, 1C:Enterprise, 1C:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, WebSocket]
|
||||
---
|
||||
|
||||
<img src={require('../../static/img/APIs/WebSocket.png').default} width='64px' />
|
||||
|
||||
# WebSocket
|
||||
|
||||
import LibraryIntro from '@site/src/components/LibraryIntro';
|
||||
|
||||
<LibraryIntro module="OPI_WebSocket" cli="ws" use="oint/api/ws" lang="en"/>
|
||||
|
||||
This section is dedicated to the WebSocket protocol library for 1C:Enterprise, OneScript, and CLI. This page describes all the actions necessary for a complete start
|
||||
|
||||
## Getting Started
|
||||
|
||||
WebSocket is a protocol that provides full-duplex communication between a client and a server over a single TCP connection. The library supports both client mode (connecting to a WebSocket server) and server mode (accepting incoming connections).
|
||||
|
||||
### Operating Modes
|
||||
|
||||
The library supports two main operating modes:
|
||||
|
||||
1. **Client** — connecting to an external WebSocket server
|
||||
2. **Server** — creating your own WebSocket server to accept incoming connections
|
||||
|
||||
### Working in Client Mode
|
||||
|
||||
To connect to a WebSocket server, you need to:
|
||||
|
||||
1. Prepare the connection address (e.g., `wss://example.com:443/ws`)
|
||||
2. Configure TLS if necessary using the `GetTlsSettings` function
|
||||
3. Open the connection using the `CreateConnection` function
|
||||
|
||||
```bsl
|
||||
Address = "wss://example.com:443/ws";
|
||||
|
||||
// TLS configuration (for wss://)
|
||||
TLSSettings = OPI_WebSocket.GetTlsSettings(False);
|
||||
|
||||
// Opening connection
|
||||
Connection = OPI_WebSocket.CreateConnection(Address, TLSSettings);
|
||||
|
||||
// Sending text message
|
||||
Result = OPI_WebSocket.SendTextMessage(Connection, "Hello, server!");
|
||||
|
||||
// Receiving response
|
||||
Response = OPI_WebSocket.GetMessage(Connection, 5000);
|
||||
|
||||
// Closing connection
|
||||
OPI_WebSocket.CloseConnection(Connection);
|
||||
```
|
||||
|
||||
### Working in Server Mode
|
||||
|
||||
To create a WebSocket server, you need to:
|
||||
|
||||
1. Select a port to listen on
|
||||
2. Configure logging using the `GetLoggingSettings` function (optional)
|
||||
3. Start the server using the `StartServer` function
|
||||
|
||||
```bsl
|
||||
Port = 8080;
|
||||
PoolSize = 100; // Maximum number of simultaneous connections
|
||||
|
||||
// Logging configuration
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300);
|
||||
|
||||
// Starting server
|
||||
Server = OPI_WebSocket.StartServer(Port, PoolSize, Logging);
|
||||
|
||||
// Receiving data from clients
|
||||
Data = OPI_WebSocket.GetNextConnectionData(Server, 1000);
|
||||
|
||||
If Data["result"] Then
|
||||
ConnectionID = Data["connection"];
|
||||
Message = Data["data"];
|
||||
|
||||
// Sending response
|
||||
OPI_WebSocket.SendData(Server, ConnectionID, "Server response");
|
||||
EndIf;
|
||||
|
||||
// Stopping server
|
||||
OPI_WebSocket.StopServer(Server);
|
||||
```
|
||||
|
||||
### TLS Configuration
|
||||
|
||||
For secure connections (wss://), you need to configure TLS:
|
||||
|
||||
```bsl
|
||||
// Trust all certificates (for testing)
|
||||
TLSSettings = OPI_WebSocket.GetTlsSettings(True);
|
||||
|
||||
// Use a specific certificate
|
||||
CertificatePath = "/path/to/certificate.pem";
|
||||
TLSSettings = OPI_WebSocket.GetTlsSettings(False, CertificatePath);
|
||||
```
|
||||
|
||||
:::important
|
||||
TLS settings can only be set at the moment of connection creation
|
||||
:::
|
||||
|
||||
### Logging
|
||||
|
||||
For debugging and monitoring server operation, you can enable logging:
|
||||
|
||||
```bsl
|
||||
// Logging to memory (last 300 events)
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300);
|
||||
|
||||
// Logging to file
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300, "/path/to/log.txt");
|
||||
|
||||
// Getting log
|
||||
Log = OPI_WebSocket.GetLog(Server, True, 100);
|
||||
```
|
||||
|
||||
### Message Types
|
||||
|
||||
The library supports various message types:
|
||||
|
||||
- **Text** — sending via `SendTextMessage`
|
||||
- **Binary** — sending via `SendBinaryMessage`
|
||||
- **Ping/Pong** — service messages for connection checking
|
||||
|
||||
```bsl
|
||||
// Sending text
|
||||
OPI_WebSocket.SendTextMessage(Connection, "Text message");
|
||||
|
||||
// Sending binary data
|
||||
BinaryData = GetBinaryDataFromFile("file.bin");
|
||||
OPI_WebSocket.SendBinaryMessage(Connection, BinaryData);
|
||||
|
||||
// Connection check
|
||||
OPI_WebSocket.SendPing(Connection);
|
||||
```
|
||||
Vendored
+138
@@ -0,0 +1,138 @@
|
||||
---
|
||||
id: WebSocket
|
||||
sidebar_class_name: WebSocket
|
||||
keywords: [1C, 1С, 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';
|
||||
|
||||
<LibraryIntro module="OPI_WebSocket" cli="ws" use="oint/api/ws" lang="ru"/>
|
||||
|
||||
Этот раздел посвящен библиотеке для работы с WebSocket протоколом в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы
|
||||
|
||||
## Начало работы
|
||||
|
||||
WebSocket — это протокол, обеспечивающий полнодуплексную связь между клиентом и сервером через единое TCP-соединение. Библиотека поддерживает работу как в режиме клиента (подключение к WebSocket серверу), так и в режиме сервера (прием входящих подключений).
|
||||
|
||||
### Режимы работы
|
||||
|
||||
Библиотека поддерживает два основных режима работы:
|
||||
|
||||
1. **Клиент** — подключение к внешнему WebSocket серверу
|
||||
2. **Сервер** — создание собственного WebSocket сервера для приема входящих подключений
|
||||
|
||||
### Работа в режиме клиента
|
||||
|
||||
Для подключения к WebSocket серверу необходимо:
|
||||
|
||||
1. Подготовить адрес подключения (например `wss://example.com:443/ws`)
|
||||
2. При необходимости настроить TLS при помощи функции `ПолучитьНастройкиTls`
|
||||
3. Открыть соединение при помощи функции `ОткрытьСоединение`
|
||||
|
||||
```bsl
|
||||
Адрес = "wss://example.com:443/ws";
|
||||
|
||||
// Настройка TLS (для wss://)
|
||||
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
// Открытие соединения
|
||||
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес, НастройкиTLS);
|
||||
|
||||
// Отправка текстового сообщения
|
||||
Результат = OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Привет, сервер!");
|
||||
|
||||
// Получение ответа
|
||||
Ответ = OPI_WebSocket.ПолучитьСообщение(Соединение, 5000);
|
||||
|
||||
// Закрытие соединения
|
||||
OPI_WebSocket.ЗакрытьСоединение(Соединение);
|
||||
```
|
||||
|
||||
### Работа в режиме сервера
|
||||
|
||||
Для создания WebSocket сервера необходимо:
|
||||
|
||||
1. Выбрать порт для прослушивания
|
||||
2. Настроить логирование при помощи функции `ПолучитьНастройкиЛогирования` (опционально)
|
||||
3. Запустить сервер при помощи функции `ЗапуститьСервер`
|
||||
|
||||
```bsl
|
||||
Порт = 8080;
|
||||
РазмерПула = 100; // Максимальное число одновременных соединений
|
||||
|
||||
// Настройка логирования
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300);
|
||||
|
||||
// Запуск сервера
|
||||
Сервер = OPI_WebSocket.ЗапуститьСервер(Порт, РазмерПула, Логирование);
|
||||
|
||||
// Получение данных от клиентов
|
||||
Данные = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(Сервер, 1000);
|
||||
|
||||
Если Данные["result"] Тогда
|
||||
IDСоединения = Данные["connection"];
|
||||
Сообщение = Данные["data"];
|
||||
|
||||
// Отправка ответа
|
||||
OPI_WebSocket.ОтправитьДанные(Сервер, IDСоединения, "Ответ сервера");
|
||||
КонецЕсли;
|
||||
|
||||
// Остановка сервера
|
||||
OPI_WebSocket.ОстановитьСервер(Сервер);
|
||||
```
|
||||
|
||||
### Настройка TLS
|
||||
|
||||
Для безопасных соединений (wss://) необходимо настроить TLS:
|
||||
|
||||
```bsl
|
||||
// Доверять всем сертификатам (для тестирования)
|
||||
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Истина);
|
||||
|
||||
// Использовать конкретный сертификат
|
||||
ПутьКСертификату = "/path/to/certificate.pem";
|
||||
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Ложь, ПутьКСертификату);
|
||||
```
|
||||
|
||||
:::important
|
||||
Настройки TLS могут быть установлены только в момент создания соединения
|
||||
:::
|
||||
|
||||
### Логирование
|
||||
|
||||
Для отладки и мониторинга работы сервера можно включить логирование:
|
||||
|
||||
```bsl
|
||||
// Логирование в память (300 последних событий)
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300);
|
||||
|
||||
// Логирование в файл
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300, "/path/to/log.txt");
|
||||
|
||||
// Получение лога
|
||||
Лог = OPI_WebSocket.ПолучитьЛог(Сервер, Истина, 100);
|
||||
```
|
||||
|
||||
### Типы сообщений
|
||||
|
||||
Библиотека поддерживает различные типы сообщений:
|
||||
|
||||
- **Текстовые** — отправка через `ОтправитьТекстовоеСообщение`
|
||||
- **Двоичные** — отправка через `ОтправитьДвоичноеСообщение`
|
||||
- **Ping/Pong** — служебные сообщения для проверки соединения
|
||||
|
||||
```bsl
|
||||
// Отправка текста
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Текстовое сообщение");
|
||||
|
||||
// Отправка двоичных данных
|
||||
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзФайла("file.bin");
|
||||
OPI_WebSocket.ОтправитьДвоичноеСообщение(Соединение, ДвоичныеДанные);
|
||||
|
||||
// Проверка соединения
|
||||
OPI_WebSocket.ОтправитьПинг(Соединение);
|
||||
```
|
||||
+11013
-11013
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
Function GetHashSum() Export
|
||||
|
||||
LastBuildHash = "97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C";
|
||||
LastBuildHash = "9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84";
|
||||
|
||||
Return LastBuildHash;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
|
||||
Function GetHashSum() Export
|
||||
|
||||
LastBuildHash = "97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C";
|
||||
LastBuildHash = "9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84";
|
||||
|
||||
Return LastBuildHash;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
Function GetHashSum() Export
|
||||
|
||||
LastBuildHash = "97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C";
|
||||
LastBuildHash = "9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84";
|
||||
|
||||
Return LastBuildHash;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
|
||||
Function GetHashSum() Export
|
||||
|
||||
LastBuildHash = "97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C";
|
||||
LastBuildHash = "9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84";
|
||||
|
||||
Return LastBuildHash;
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
97966547B38AF9B9DBA529DE23DE45C1B4C5AEEFC7509AE7A067F06678E2E04C
|
||||
9C13BEC3C195B06580297CF3C30910F0D4F13DDB11574E235CCE1392DE99AA84
|
||||
Reference in New Issue
Block a user