You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-05-16 09:38:28 +02:00
Доработка документации
This commit is contained in:
@@ -712,7 +712,6 @@
|
||||
|%2
|
||||
|</div>
|
||||
|</Admonition>
|
||||
|<br/>
|
||||
|"
|
||||
, ?(ТекущийЯзык = "ru", "Предупреждение", "Caution")
|
||||
, ?(ТекущийЯзык = "ru"
|
||||
|
||||
Vendored
+52
-88
@@ -12,127 +12,91 @@ 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
|
||||
This section covers the WebSocket library for 1C:Enterprise, OneScript, and CLI. It provides an overview of the main module capabilities and core usage principles.
|
||||
|
||||
## 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).
|
||||
WebSocket provides bidirectional communication over a single TCP connection. The library supports two operating modes:
|
||||
|
||||
### Operating Modes
|
||||
- **Client** - connect to an external WebSocket server (`ws://` or `wss://`)
|
||||
- **Server** - run your own WebSocket server and handle incoming connections
|
||||
|
||||
The library supports two main operating modes:
|
||||
## Working in client mode
|
||||
|
||||
1. **Client** — connecting to an external WebSocket server
|
||||
2. **Server** — creating your own WebSocket server to accept incoming connections
|
||||
Client mode is used to connect to external WebSocket services and exchange messages. The main entry point is `CreateConnection`. After connecting, you can:
|
||||
|
||||
### 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
|
||||
- send text and binary messages (`SendTextMessage`, `SendBinaryMessage`)
|
||||
- receive incoming data (`GetMessage`)
|
||||
- use service keepalive frames (`SendPing`, `SendPong`)
|
||||
- close the session explicitly (`CloseConnection`)
|
||||
|
||||
```bsl
|
||||
Address = "wss://example.com:443/ws";
|
||||
Address = "wss://example.com:443/ws";
|
||||
Connection = OPI_WebSocket.CreateConnection(Address);
|
||||
|
||||
// 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
|
||||
OPI_WebSocket.SendTextMessage(Connection, "Hello, server!");
|
||||
Response = OPI_WebSocket.GetMessage(Connection, 5000);
|
||||
|
||||
// Closing connection
|
||||
OPI_WebSocket.CloseConnection(Connection);
|
||||
```
|
||||
|
||||
### Working in Server Mode
|
||||
### TLS
|
||||
|
||||
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
|
||||
TLS is used for secure client connections (`wss://`). Build TLS settings with `GetTlsSettings` and pass them to `CreateConnection`. If TLS settings are not passed, the connection is opened without encryption.
|
||||
|
||||
```bsl
|
||||
Port = 8080;
|
||||
PoolSize = 100; // Maximum number of simultaneous connections
|
||||
Address = "wss://example.com:443/ws";
|
||||
TLSSettings = OPI_WebSocket.GetTlsSettings(False, "/path/to/certificate.pem");
|
||||
|
||||
// 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);
|
||||
Connection = OPI_WebSocket.CreateConnection(Address, TLSSettings);
|
||||
```
|
||||
|
||||
:::important
|
||||
TLS settings can only be set at the moment of connection creation
|
||||
TLS settings are applied only when creating a connection (`CreateConnection`). You cannot change them for an already opened connection.
|
||||
:::
|
||||
|
||||
### Logging
|
||||
### Proxy
|
||||
|
||||
For debugging and monitoring server operation, you can enable logging:
|
||||
The client supports proxy-based connections. Build proxy settings using `GetProxySettings` and pass them as the third parameter of `CreateConnection`. Supported proxy types: `socks5`, `socks4`, and `http`.
|
||||
|
||||
```bsl
|
||||
// Logging to memory (last 300 events)
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300);
|
||||
Address = "ws://example.com:80/ws";
|
||||
ProxySettings = OPI_WebSocket.GetProxySettings("127.0.0.1", "8071", "socks5");
|
||||
|
||||
// Logging to file
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300, "/path/to/log.txt");
|
||||
|
||||
// Getting log
|
||||
Log = OPI_WebSocket.GetLog(Server, True, 100);
|
||||
Connection = OPI_WebSocket.CreateConnection(Address, Undefined, ProxySettings);
|
||||
```
|
||||
|
||||
### Message Types
|
||||
## Working in server mode
|
||||
|
||||
The library supports various message types:
|
||||
Server mode is used to accept incoming WebSocket connections and exchange data with clients. It includes lifecycle and connection management methods:
|
||||
|
||||
- **Text** — sending via `SendTextMessage`
|
||||
- **Binary** — sending via `SendBinaryMessage`
|
||||
- **Ping/Pong** — service messages for connection checking
|
||||
- start and stop server (`StartServer`, `StopServer`)
|
||||
- read incoming data (`GetNextConnectionData`, `GetConnectionData`)
|
||||
- send responses to a specific connection (`SendData`)
|
||||
- list and close incoming connections (`GetConnectionList`, `CloseIncomingConnection`)
|
||||
|
||||
```bsl
|
||||
// Sending text
|
||||
OPI_WebSocket.SendTextMessage(Connection, "Text message");
|
||||
Port = 8080;
|
||||
PoolSize = 100;
|
||||
Logging = OPI_WebSocket.GetLoggingSettings(True, 300);
|
||||
|
||||
// Sending binary data
|
||||
BinaryData = GetBinaryDataFromFile("file.bin");
|
||||
OPI_WebSocket.SendBinaryMessage(Connection, BinaryData);
|
||||
Server = OPI_WebSocket.StartServer(Port, PoolSize, Logging);
|
||||
Data = OPI_WebSocket.GetNextConnectionData(Server, 1000);
|
||||
|
||||
// Connection check
|
||||
OPI_WebSocket.SendPing(Connection);
|
||||
```
|
||||
If Data["result"] Then
|
||||
|
||||
ConnectionID = Data["connectionId"];
|
||||
Message = Data["message"];
|
||||
|
||||
OPI_WebSocket.SendData(Server, ConnectionID, "Server response");
|
||||
|
||||
EndIf;
|
||||
|
||||
OPI_WebSocket.StopServer(Server);
|
||||
```
|
||||
|
||||
## Common capabilities
|
||||
|
||||
- `GetLoggingSettings` and `GetLog` provide diagnostics for both client and server
|
||||
- `IsClientObject` and `IsServerObject` verify the type of returned component object
|
||||
- For full parameters and edge cases, see **Client methods**, **Server methods**, and **Common**
|
||||
|
||||
Vendored
+52
-88
@@ -12,127 +12,91 @@ import LibraryIntro from '@site/src/components/LibraryIntro';
|
||||
|
||||
<LibraryIntro module="OPI_WebSocket" cli="ws" use="oint/api/ws" lang="ru"/>
|
||||
|
||||
Этот раздел посвящен библиотеке для работы с WebSocket протоколом в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы
|
||||
Этот раздел посвящен библиотеке для работы с WebSocket в 1С:Предприятие, OneScript и CLI. На странице собраны ключевые возможности модуля и базовые принципы его использования.
|
||||
|
||||
## Начало работы
|
||||
|
||||
WebSocket — это протокол, обеспечивающий полнодуплексную связь между клиентом и сервером через единое TCP-соединение. Библиотека поддерживает работу как в режиме клиента (подключение к WebSocket серверу), так и в режиме сервера (прием входящих подключений).
|
||||
WebSocket обеспечивает двусторонний обмен данными поверх одного TCP-соединения. В библиотеке доступны два режима работы:
|
||||
|
||||
### Режимы работы
|
||||
- **Клиент** — подключение к внешнему WebSocket-серверу (`ws://` или `wss://`)
|
||||
- **Сервер** — запуск собственного сервера и обработка входящих подключений
|
||||
|
||||
Библиотека поддерживает два основных режима работы:
|
||||
## Работа в режиме клиента
|
||||
|
||||
1. **Клиент** — подключение к внешнему WebSocket серверу
|
||||
2. **Сервер** — создание собственного WebSocket сервера для приема входящих подключений
|
||||
Клиентский режим предназначен для подключения к внешним WebSocket-сервисам и дальнейшего обмена сообщениями. Основная точка входа — `ОткрытьСоединение`. После подключения доступны:
|
||||
|
||||
### Работа в режиме клиента
|
||||
|
||||
Для подключения к WebSocket серверу необходимо:
|
||||
|
||||
1. Подготовить адрес подключения (например `wss://example.com:443/ws`)
|
||||
2. При необходимости настроить TLS при помощи функции `ПолучитьНастройкиTls`
|
||||
3. Открыть соединение при помощи функции `ОткрытьСоединение`
|
||||
- отправка текстовых и двоичных сообщений (`ОтправитьТекстовоеСообщение`, `ОтправитьДвоичноеСообщение`)
|
||||
- получение входящих данных (`ПолучитьСообщение`)
|
||||
- служебные сообщения контроля соединения (`ОтправитьПинг`, `ОтправитьПонг`)
|
||||
- корректное завершение сессии (`ЗакрытьСоединение`)
|
||||
|
||||
```bsl
|
||||
Адрес = "wss://example.com:443/ws";
|
||||
Адрес = "wss://example.com:443/ws";
|
||||
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес);
|
||||
|
||||
// Настройка TLS (для wss://)
|
||||
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
// Открытие соединения
|
||||
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес, НастройкиTLS);
|
||||
|
||||
// Отправка текстового сообщения
|
||||
Результат = OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Привет, сервер!");
|
||||
|
||||
// Получение ответа
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Привет, сервер!");
|
||||
Ответ = OPI_WebSocket.ПолучитьСообщение(Соединение, 5000);
|
||||
|
||||
// Закрытие соединения
|
||||
OPI_WebSocket.ЗакрытьСоединение(Соединение);
|
||||
```
|
||||
|
||||
### Работа в режиме сервера
|
||||
### TLS
|
||||
|
||||
Для создания WebSocket сервера необходимо:
|
||||
|
||||
1. Выбрать порт для прослушивания
|
||||
2. Настроить логирование при помощи функции `ПолучитьНастройкиЛогирования` (опционально)
|
||||
3. Запустить сервер при помощи функции `ЗапуститьСервер`
|
||||
TLS в WebSocket используется для защищенных клиентских подключений (`wss://`). Настройки формируются через `ПолучитьНастройкиTls` и передаются в `ОткрытьСоединение`. Если TLS-параметр не передан, соединение открывается без шифрования.
|
||||
|
||||
```bsl
|
||||
Порт = 8080;
|
||||
РазмерПула = 100; // Максимальное число одновременных соединений
|
||||
Адрес = "wss://example.com:443/ws";
|
||||
НастройкиTLS = OPI_WebSocket.ПолучитьНастройкиTls(Ложь, "/path/to/certificate.pem");
|
||||
|
||||
// Настройка логирования
|
||||
Логирование = 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(Ложь, ПутьКСертификату);
|
||||
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес, НастройкиTLS);
|
||||
```
|
||||
|
||||
:::important
|
||||
Настройки TLS могут быть установлены только в момент создания соединения
|
||||
Настройки TLS применяются только при создании соединения (`ОткрытьСоединение`). Изменить их для уже открытого соединения нельзя.
|
||||
:::
|
||||
|
||||
### Логирование
|
||||
### Прокси
|
||||
|
||||
Для отладки и мониторинга работы сервера можно включить логирование:
|
||||
Клиент поддерживает подключение через прокси-сервер. Параметры прокси формируются функцией `ПолучитьНастройкиПрокси` и передаются в `ОткрытьСоединение` третьим параметром. Поддерживаются `socks5`, `socks4` и `http`.
|
||||
|
||||
```bsl
|
||||
// Логирование в память (300 последних событий)
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300);
|
||||
Адрес = "ws://example.com:80/ws";
|
||||
НастройкиПрокси = OPI_WebSocket.ПолучитьНастройкиПрокси("127.0.0.1", "8071", "socks5", "user", "pass");
|
||||
|
||||
// Логирование в файл
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300, "/path/to/log.txt");
|
||||
|
||||
// Получение лога
|
||||
Лог = OPI_WebSocket.ПолучитьЛог(Сервер, Истина, 100);
|
||||
Соединение = OPI_WebSocket.ОткрытьСоединение(Адрес, Неопределено, НастройкиПрокси);
|
||||
```
|
||||
|
||||
### Типы сообщений
|
||||
## Работа в режиме сервера
|
||||
|
||||
Библиотека поддерживает различные типы сообщений:
|
||||
Серверный режим позволяет принимать входящие WebSocket-подключения и обмениваться данными с клиентами. Для работы используются методы управления жизненным циклом сервера и соединений:
|
||||
|
||||
- **Текстовые** — отправка через `ОтправитьТекстовоеСообщение`
|
||||
- **Двоичные** — отправка через `ОтправитьДвоичноеСообщение`
|
||||
- **Ping/Pong** — служебные сообщения для проверки соединения
|
||||
- запуск и остановка (`ЗапуститьСервер`, `ОстановитьСервер`)
|
||||
- чтение данных (`ПолучитьДанныеОчередногоСоединения`, `ПолучитьДанныеСоединения`)
|
||||
- отправка ответа в конкретное соединение (`ОтправитьДанные`)
|
||||
- получение списка активных соединений и закрытие конкретного (`ПолучитьСписокСоединений`, `ЗакрытьВходящееСоединение`)
|
||||
|
||||
```bsl
|
||||
// Отправка текста
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, "Текстовое сообщение");
|
||||
Порт = 8080;
|
||||
РазмерПула = 100;
|
||||
Логирование = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 300);
|
||||
|
||||
// Отправка двоичных данных
|
||||
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзФайла("file.bin");
|
||||
OPI_WebSocket.ОтправитьДвоичноеСообщение(Соединение, ДвоичныеДанные);
|
||||
Сервер = OPI_WebSocket.ЗапуститьСервер(Порт, РазмерПула, Логирование);
|
||||
Данные = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(Сервер, 1000);
|
||||
|
||||
// Проверка соединения
|
||||
OPI_WebSocket.ОтправитьПинг(Соединение);
|
||||
```
|
||||
Если Данные["result"] Тогда
|
||||
|
||||
IDСоединения = Данные["connectionId"];
|
||||
Сообщение = Данные["message"];
|
||||
|
||||
OPI_WebSocket.ОтправитьДанные(Сервер, IDСоединения, "Ответ сервера");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
OPI_WebSocket.ОстановитьСервер(Сервер);
|
||||
```
|
||||
|
||||
## Общие возможности
|
||||
|
||||
- `ПолучитьНастройкиЛогирования` и `ПолучитьЛог` позволяют включать и анализировать лог как для клиента, так и для сервера
|
||||
- `ЭтоОбъектКлиента` и `ЭтоОбъектСервера` позволяют проверить тип возвращенного объекта
|
||||
- Для детальных параметров каждого метода используйте страницы в разделах **Методы клиента**, **Методы сервера** и **Общие**
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import Admonition from '@theme/Admonition';
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| ЗаписьВПамять | - | Булево | ✖ | Запись лог в память для дальнейшего получения из объекта компоненты |
|
||||
| ЗаписьВПамять | - | Булево | ✖ | Запись лога в память для дальнейшего получения из объекта компоненты |
|
||||
| МаксимумСобытий | - | Число | ✖ | Максимальное число события, хранящееся в память |
|
||||
| ПутьКФайлу | - | Строка | ✖ | Путь к файлу для сохранения полного лога, если необходимо |
|
||||
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import Admonition from '@theme/Admonition';
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| ЗаписьВПамять | - | Булево | ✖ | Запись лог в память для дальнейшего получения из объекта компоненты |
|
||||
| ЗаписьВПамять | - | Булево | ✖ | Запись лога в память для дальнейшего получения из объекта компоненты |
|
||||
| МаксимумСобытий | - | Число | ✖ | Максимальное число события, хранящееся в память |
|
||||
| ПутьКФайлу | - | Строка | ✖ | Путь к файлу для сохранения полного лога, если необходимо |
|
||||
|
||||
|
||||
@@ -11781,7 +11781,7 @@
|
||||
"Проверяет, что значение является объектом внешней компоненты SQLite": "Checks that the value is an object of a SQLite AddIn",
|
||||
"Совпадающие поля будут перезаписаны с приоритетом параметра функции": "Matching fields will be overwritten with the parameter of the function",
|
||||
"!OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, \"СоздатьБазу": "!OInt OPI_TestDataRetrieval.WriteLog(Result, \"CreateDatabase",
|
||||
"Запись лог в память для дальнейшего получения из объекта компоненты": "Logging log to memory for further retrieval from the addin object",
|
||||
"Запись лога в память для дальнейшего получения из объекта компоненты": "Logging to memory for further retrieval from the addin object",
|
||||
"Уровень информации: error, warn, info, debug, trace, fatal, unknown": "Information level: error, warn, info, debug, trace, fatal, unknown",
|
||||
"В качестве ключевых выступают все UNIQUE и PRIMARY KEY поля таблицы": "All UNIQUE and PRIMARY KEY fields of the table serve as key fields",
|
||||
"!OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, \"УдалитьБлок": "!OInt OPI_TestDataRetrieval.WriteLog(Result, \"DeleteBlock",
|
||||
|
||||
@@ -575,7 +575,7 @@
|
||||
// Получает структуру настроек для запуска логирования при старте сервера
|
||||
//
|
||||
// Параметры:
|
||||
// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory
|
||||
// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory
|
||||
// МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count
|
||||
// ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path
|
||||
//
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
// Получает структуру настроек для запуска логирования при старте сервера
|
||||
//
|
||||
// Параметры:
|
||||
// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory
|
||||
// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory
|
||||
// МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count
|
||||
// ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path
|
||||
//
|
||||
|
||||
@@ -1375,6 +1375,16 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Проверка_Core_ПолучитьДоступныеНастройки(Знач Результат, Знач Вариант)
|
||||
|
||||
ОжидаетЧто(ТипЗнч(Результат) = Тип("Строка")).Равно(Истина);
|
||||
ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Истина);
|
||||
ОжидаетЧто(СтрНайти(Результат, "adv_response")).Больше(0);
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Проверка_Telegram_ПолучитьИнформациюБота(Знач Результат, Знач Вариант)
|
||||
|
||||
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
|
||||
|
||||
РасширенныйВызов_ВызватьСНастройками(ПараметрыТеста);
|
||||
РасширенныйВызов_ПолучитьДоступныеНастройки();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -138,6 +139,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РасширенныйВызов_ПолучитьДоступныеНастройки()
|
||||
|
||||
Результат = OPI_РасширенныйВызов.ПолучитьДоступныеНастройки("OPI_Telegram", "ПолучитьИнформациюБота");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ПолучитьДоступныеНастройки");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+183
-124
@@ -162,11 +162,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -179,12 +180,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -208,11 +215,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -225,12 +233,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -255,11 +269,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -272,12 +287,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -287,13 +308,16 @@
|
||||
|
||||
Результат = OPI_WebSocket.ОтправитьПинг(Соединение);
|
||||
|
||||
// Пропускаем все ответы от сервера до последнего
|
||||
Пока Истина Цикл
|
||||
|
||||
ПоследнееСообщение = OPI_WebSocket.ПолучитьСообщение(Соединение, 3000);
|
||||
|
||||
Если ПоследнееСообщение["result"] Тогда
|
||||
// Очередное сообщение
|
||||
Проверка = ПоследнееСообщение;
|
||||
Иначе
|
||||
// Сообщений больше нет
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -323,11 +347,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -340,12 +365,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -374,11 +405,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -391,12 +423,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -406,11 +444,12 @@
|
||||
|
||||
Если OPI_WebSocket.ЭтоОбъектКлиента(Соединение) Тогда
|
||||
|
||||
// ECHO
|
||||
// Отправляем сообщение ECHO-серверу
|
||||
Отправка = OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, Сообщение);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Отправка, "WebSocket", "ПолучитьСообщение", "Отправка, " + Постфикс); // SKIP
|
||||
|
||||
// Пропускаем все ответы от сервера до последнего
|
||||
Пока Истина Цикл
|
||||
|
||||
ПоследнееСообщение = OPI_WebSocket.ПолучитьСообщение(Соединение, 3000); // <----
|
||||
@@ -444,11 +483,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -461,12 +501,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -475,9 +521,7 @@
|
||||
Сообщение = "echo-text-" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
|
||||
Если OPI_WebSocket.ЭтоОбъектКлиента(Соединение) Тогда
|
||||
|
||||
Результат = OPI_WebSocket.ОтправитьТекстовоеСообщение(Соединение, Сообщение);
|
||||
|
||||
Иначе
|
||||
Результат = Соединение;
|
||||
КонецЕсли;
|
||||
@@ -513,11 +557,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -530,12 +575,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -607,11 +658,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -621,12 +673,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_WebSocket.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -659,11 +717,12 @@
|
||||
Адрес = "wss://127.0.0.1:8443";
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции); // SKIP
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
НастройкиTls = Неопределено; // SKIP
|
||||
НастройкиПрокси = Неопределено; // SKIP
|
||||
|
||||
НуженПрокси = Истина;
|
||||
НуженTLS = Истина;
|
||||
|
||||
НуженПрокси = ПараметрыФункции["Proxy"]; // SKIP
|
||||
НуженTls = ПараметрыФункции["TLS"]; // SKIP
|
||||
|
||||
@@ -676,12 +735,18 @@
|
||||
|
||||
Если НуженПрокси Тогда
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
ПроксиАдрес = ПараметрыФункции["Proxy_IP"];
|
||||
ПроксиПорт = ПараметрыФункции["Proxy_Port"];
|
||||
ПроксиВид = ПараметрыФункции["Proxy_Type"];
|
||||
|
||||
ПроксиПользователь = ПараметрыФункции["Proxy_User"];
|
||||
ПроксиПароль = ПараметрыФункции["Proxy_Password"];
|
||||
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(ПроксиАдрес
|
||||
, ПроксиПорт
|
||||
, ПроксиВид
|
||||
, ПроксиПользователь
|
||||
, ПроксиПароль);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -703,7 +768,7 @@
|
||||
|
||||
Процедура WebSocket_ЗапуститьСервер(ПараметрыФункции)
|
||||
|
||||
Порт = 9886;
|
||||
Порт = 9894;
|
||||
РазмерПула = 10;
|
||||
|
||||
Результат = OPI_WebSocket.ЗапуститьСервер(Порт, РазмерПула);
|
||||
@@ -718,41 +783,45 @@
|
||||
|
||||
Процедура WebSocket_ОстановитьСервер(ПараметрыФункции)
|
||||
|
||||
Порт = 9887;
|
||||
Сервер = OPI_WebSocket.ЗапуститьСервер(Порт);
|
||||
Порт = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(Порт);
|
||||
|
||||
Результат = OPI_WebSocket.ОстановитьСервер(Сервер);
|
||||
Результат = OPI_WebSocket.ОстановитьСервер(ОбъектСервера);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "WebSocket", "ОстановитьСервер");
|
||||
|
||||
РезультатСписка = OPI_WebSocket.ПолучитьСписокСоединений(Сервер);
|
||||
РезультатСписка = OPI_WebSocket.ПолучитьСписокСоединений(ОбъектСервера);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(РезультатСписка, "WebSocket", "ОстановитьСервер", "Список");
|
||||
|
||||
Адрес = "ws://127.0.0.1:9887";
|
||||
Клиент = OPI_WebSocket.ОткрытьСоединение(Адрес);
|
||||
Адрес = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(Адрес);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Клиент, "WebSocket", "ОстановитьСервер", "Подключение");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(ОбъектКлиента, "WebSocket", "ОстановитьСервер", "Подключение");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура WebSocket_ПолучитьДанныеОчередногоСоединения(ПараметрыФункции)
|
||||
|
||||
ПортЗапуска = 9888;
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);
|
||||
|
||||
АдресПодключения = "ws://127.0.0.1:9888";
|
||||
// Подключение к серверу при помощи клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
|
||||
Если Не OPI_WebSocket.ЭтоОбъектКлиента(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
Иначе
|
||||
// Отправка с клиента
|
||||
Сообщение = "Hello from client!";
|
||||
Отправка = OPI_WebSocket.ОтправитьТекстовоеСообщение(ОбъектКлиента, Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
// Получение на сервере
|
||||
Результат = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(ОбъектСервера, 5000);
|
||||
|
||||
// END
|
||||
@@ -774,10 +843,12 @@
|
||||
|
||||
Процедура WebSocket_ПолучитьДанныеСоединения(ПараметрыФункции)
|
||||
|
||||
ПортЗапуска = 9889;
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);
|
||||
|
||||
АдресПодключения = "ws://127.0.0.1:9889";
|
||||
// Подключение к серверу при помощи клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
|
||||
Если Не OPI_WebSocket.ЭтоОбъектКлиента(ОбъектКлиента) Тогда
|
||||
@@ -786,6 +857,7 @@
|
||||
|
||||
OPI_Инструменты.Пауза(1); // SKIP
|
||||
|
||||
// Получение списка активных соединений на сервере
|
||||
СписокСоединений = OPI_WebSocket.ПолучитьСписокСоединений(ОбъектСервера);
|
||||
|
||||
Если Не СписокСоединений["result"] Тогда
|
||||
@@ -800,9 +872,11 @@
|
||||
|
||||
Для Н = 0 По 5 Цикл
|
||||
|
||||
// Отправка ссообщения с клиента
|
||||
ТекущееСообщение = СтрШаблон("Message no. %1", Н);
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(ОбъектКлиента, ТекущееСообщение);
|
||||
|
||||
|
||||
// Получение входящего сообщения на сервере по ID
|
||||
Результат = OPI_WebSocket.ПолучитьДанныеСоединения(ОбъектСервера, IDСоединения, 5000);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "WebSocket", "ПолучитьДанныеСоединения", , ТекущееСообщение); // SKIP
|
||||
@@ -829,20 +903,23 @@
|
||||
|
||||
Процедура WebSocket_ОтправитьДанные(ПараметрыФункции)
|
||||
|
||||
ПортЗапуска = 9890;
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);
|
||||
|
||||
АдресПодключения = "ws://127.0.0.1:9890";
|
||||
// Подключение к серверу при помощи клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
|
||||
Если Не OPI_WebSocket.ЭтоОбъектКлиента(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
// Отправка ссообщения с клиента
|
||||
Сообщение = "Hello!";
|
||||
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(ОбъектКлиента, Сообщение);
|
||||
|
||||
// Получение очередного соединения на сервере и возврат ответа
|
||||
ОчередноеСообщение = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(ОбъектСервера, 5000);
|
||||
IDСоединения = ОчередноеСообщение["connectionId"];
|
||||
|
||||
@@ -864,20 +941,23 @@
|
||||
|
||||
Процедура WebSocket_ЗакрытьВходящееСоединение(ПараметрыФункции)
|
||||
|
||||
ПортЗапуска = 9891;
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);
|
||||
|
||||
АдресПодключения = "ws://127.0.0.1:9891";
|
||||
// Подключение к серверу при помощи клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
|
||||
Если Не OPI_WebSocket.ЭтоОбъектКлиента(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
// Отправка ссообщения с клиента
|
||||
Сообщение = "Hello!";
|
||||
|
||||
OPI_WebSocket.ОтправитьТекстовоеСообщение(ОбъектКлиента, Сообщение);
|
||||
|
||||
// Получение и закрытие соединения на сервере
|
||||
ПервоеСообщение = OPI_WebSocket.ПолучитьДанныеОчередногоСоединения(ОбъектСервера, 5000);
|
||||
IDСоединения = ПервоеСообщение["connectionId"];
|
||||
|
||||
@@ -902,10 +982,12 @@
|
||||
|
||||
Процедура WebSocket_ПолучитьСписокСоединений(ПараметрыФункции)
|
||||
|
||||
ПортЗапуска = 9892;
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);
|
||||
|
||||
АдресПодключения = "ws://127.0.0.1:9892";
|
||||
// Создание нескольких соединений клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
|
||||
Клиент1 = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
Клиент2 = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
@@ -918,6 +1000,7 @@
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Клиент2);
|
||||
КонецЕсли;
|
||||
|
||||
// Получение списка активных соединений на сервере
|
||||
Результат = OPI_WebSocket.ПолучитьСписокСоединений(ОбъектСервера);
|
||||
|
||||
// END
|
||||
@@ -945,7 +1028,7 @@
|
||||
|
||||
Процедура WebSocket_ЭтоОбъектСервера(ПараметрыФункции)
|
||||
|
||||
Порт = 9893;
|
||||
Порт = 9894;
|
||||
Сервер = OPI_WebSocket.ЗапуститьСервер(Порт);
|
||||
|
||||
Результат = OPI_WebSocket.ЭтоОбъектСервера(Сервер);
|
||||
@@ -964,11 +1047,13 @@
|
||||
|
||||
Процедура WebSocket_ПолучитьЛог(ПараметрыФункции)
|
||||
|
||||
// Запуск сервера
|
||||
ПортЗапуска = 9894;
|
||||
ФайлЛога = ПолучитьИмяВременногоФайла("txt");
|
||||
НастройкиЛогирования = OPI_WebSocket.ПолучитьНастройкиЛогирования(Истина, 100, ФайлЛога);
|
||||
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска, , НастройкиЛогирования);
|
||||
|
||||
// Подключение к серверу с клиента
|
||||
АдресПодключения = "ws://127.0.0.1:9894";
|
||||
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);
|
||||
OPI_Инструменты.Пауза(1); // SKIP
|
||||
@@ -977,6 +1062,7 @@
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
// Получение лога сервера
|
||||
Результат = OPI_WebSocket.ПолучитьЛог(ОбъектСервера);
|
||||
|
||||
// END
|
||||
@@ -1015,33 +1101,6 @@
|
||||
|
||||
#Область ВспомогательныеФункции
|
||||
|
||||
Функция СоздатьКлиентWebSocket(ПараметрыФункции)
|
||||
|
||||
Адрес = ПолучитьАдресWebSocket(ПараметрыФункции);
|
||||
|
||||
НастройкиTls = Неопределено;
|
||||
НастройкиПрокси = Неопределено;
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("X-Trace-Id", "OPI-WS-TEST");
|
||||
|
||||
Если ПараметрыФункции["TLS"] Тогда
|
||||
НастройкиTls = OPI_WebSocket.ПолучитьНастройкиTls(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыФункции["Proxy"] Тогда
|
||||
НастройкиПрокси = OPI_Компоненты.ПолучитьНастройкиПрокси(
|
||||
ПараметрыФункции["Proxy_IP"],
|
||||
ПараметрыФункции["Proxy_Port"],
|
||||
ПараметрыФункции["Proxy_Type"],
|
||||
ПараметрыФункции["Proxy_User"],
|
||||
ПараметрыФункции["Proxy_Password"]);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат OPI_WebSocket.ОткрытьСоединение(Адрес, НастройкиTls, НастройкиПрокси, Заголовки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьАдресWebSocket(ПараметрыФункции)
|
||||
|
||||
Схема = ?(ПараметрыФункции["TLS"], "wss://", "ws://");
|
||||
|
||||
+1
-1
@@ -575,7 +575,7 @@
|
||||
// Получает структуру настроек для запуска логирования при старте сервера
|
||||
//
|
||||
// Параметры:
|
||||
// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory
|
||||
// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory
|
||||
// МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count
|
||||
// ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path
|
||||
//
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@
|
||||
// Получает структуру настроек для запуска логирования при старте сервера
|
||||
//
|
||||
// Параметры:
|
||||
// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory
|
||||
// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory
|
||||
// МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count
|
||||
// ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user