diff --git a/ci/os/internal/Classes/DocsGenerator.os b/ci/os/internal/Classes/DocsGenerator.os index 5ed6984772..7d1b45082a 100644 --- a/ci/os/internal/Classes/DocsGenerator.os +++ b/ci/os/internal/Classes/DocsGenerator.os @@ -712,7 +712,6 @@ |%2 | | - |
|" , ?(ТекущийЯзык = "ru", "Предупреждение", "Caution") , ?(ТекущийЯзык = "ru" diff --git a/docs/en/md/Instructions/WebSocket.md b/docs/en/md/Instructions/WebSocket.md index 64a3321ebc..5507d70a91 100644 --- a/docs/en/md/Instructions/WebSocket.md +++ b/docs/en/md/Instructions/WebSocket.md @@ -12,127 +12,91 @@ import LibraryIntro from '@site/src/components/LibraryIntro'; -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); -``` \ No newline at end of file +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** diff --git a/docs/ru/md/Instructions/WebSocket.md b/docs/ru/md/Instructions/WebSocket.md index 98d76994ab..89f4404173 100644 --- a/docs/ru/md/Instructions/WebSocket.md +++ b/docs/ru/md/Instructions/WebSocket.md @@ -12,127 +12,91 @@ import LibraryIntro from '@site/src/components/LibraryIntro'; -Этот раздел посвящен библиотеке для работы с 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.ОтправитьПинг(Соединение); -``` \ No newline at end of file +Если Данные["result"] Тогда + + IDСоединения = Данные["connectionId"]; + Сообщение = Данные["message"]; + + OPI_WebSocket.ОтправитьДанные(Сервер, IDСоединения, "Ответ сервера"); + +КонецЕсли; + +OPI_WebSocket.ОстановитьСервер(Сервер); +``` + +## Общие возможности + +- `ПолучитьНастройкиЛогирования` и `ПолучитьЛог` позволяют включать и анализировать лог как для клиента, так и для сервера +- `ЭтоОбъектКлиента` и `ЭтоОбъектСервера` позволяют проверить тип возвращенного объекта +- Для детальных параметров каждого метода используйте страницы в разделах **Методы клиента**, **Методы сервера** и **Общие** diff --git a/docs/ru/md/TCP/Server-methods/Get-logging-settings.mdx b/docs/ru/md/TCP/Server-methods/Get-logging-settings.mdx index bdb1e6fa13..1f96877e32 100644 --- a/docs/ru/md/TCP/Server-methods/Get-logging-settings.mdx +++ b/docs/ru/md/TCP/Server-methods/Get-logging-settings.mdx @@ -21,7 +21,7 @@ import Admonition from '@theme/Admonition'; | Параметр | CLI опция | Тип | Обяз. | Назначение | |-|-|-|-|-| - | ЗаписьВПамять | - | Булево | ✖ | Запись лог в память для дальнейшего получения из объекта компоненты | + | ЗаписьВПамять | - | Булево | ✖ | Запись лога в память для дальнейшего получения из объекта компоненты | | МаксимумСобытий | - | Число | ✖ | Максимальное число события, хранящееся в память | | ПутьКФайлу | - | Строка | ✖ | Путь к файлу для сохранения полного лога, если необходимо | diff --git a/docs/ru/md/WebSocket/Common/Get-logging-settings.mdx b/docs/ru/md/WebSocket/Common/Get-logging-settings.mdx index 2c82bf6b2a..e9e3f491cf 100644 --- a/docs/ru/md/WebSocket/Common/Get-logging-settings.mdx +++ b/docs/ru/md/WebSocket/Common/Get-logging-settings.mdx @@ -21,7 +21,7 @@ import Admonition from '@theme/Admonition'; | Параметр | CLI опция | Тип | Обяз. | Назначение | |-|-|-|-|-| - | ЗаписьВПамять | - | Булево | ✖ | Запись лог в память для дальнейшего получения из объекта компоненты | + | ЗаписьВПамять | - | Булево | ✖ | Запись лога в память для дальнейшего получения из объекта компоненты | | МаксимумСобытий | - | Число | ✖ | Максимальное число события, хранящееся в память | | ПутьКФайлу | - | Строка | ✖ | Путь к файлу для сохранения полного лога, если необходимо | diff --git a/service/dictionaries/en.json b/service/dictionaries/en.json index 60edf71a4f..879e1f3dc5 100644 --- a/service/dictionaries/en.json +++ b/service/dictionaries/en.json @@ -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", diff --git a/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_TCP/Module.bsl b/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_TCP/Module.bsl index b0671da1b5..dae4197950 100644 --- a/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_TCP/Module.bsl +++ b/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_TCP/Module.bsl @@ -575,7 +575,7 @@ // Получает структуру настроек для запуска логирования при старте сервера // // Параметры: -// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory +// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory // МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count // ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path // diff --git a/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_WebSocket/Module.bsl b/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_WebSocket/Module.bsl index 9287d5c7c7..90a6a40d44 100644 --- a/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_WebSocket/Module.bsl +++ b/src/ru/BSL/OpenIntegrations/src/CommonModules/OPI_WebSocket/Module.bsl @@ -57,7 +57,7 @@ // Получает структуру настроек для запуска логирования при старте сервера // // Параметры: -// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory +// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory // МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count // ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path // diff --git a/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index 05c90ce603..08cb9a7889 100644 --- a/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -1375,6 +1375,16 @@ КонецФункции +Функция Проверка_Core_ПолучитьДоступныеНастройки(Знач Результат, Знач Вариант) + + ОжидаетЧто(ТипЗнч(Результат) = Тип("Строка")).Равно(Истина); + ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Истина); + ОжидаетЧто(СтрНайти(Результат, "adv_response")).Больше(0); + + Возврат Неопределено; + +КонецФункции + Функция Проверка_Telegram_ПолучитьИнформациюБота(Знач Результат, Знач Вариант) ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); diff --git a/src/ru/BSL/Tests/src/CommonModules/OPIt_Core/Module.bsl b/src/ru/BSL/Tests/src/CommonModules/OPIt_Core/Module.bsl index 0f62d24547..526f68fef4 100644 --- a/src/ru/BSL/Tests/src/CommonModules/OPIt_Core/Module.bsl +++ b/src/ru/BSL/Tests/src/CommonModules/OPIt_Core/Module.bsl @@ -109,6 +109,7 @@ OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста); РасширенныйВызов_ВызватьСНастройками(ПараметрыТеста); + РасширенныйВызов_ПолучитьДоступныеНастройки(); КонецПроцедуры @@ -138,6 +139,14 @@ КонецПроцедуры +Процедура РасширенныйВызов_ПолучитьДоступныеНастройки() + + Результат = OPI_РасширенныйВызов.ПолучитьДоступныеНастройки("OPI_Telegram", "ПолучитьИнформациюБота"); + + OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ПолучитьДоступныеНастройки"); + +КонецПроцедуры + #КонецОбласти #КонецОбласти diff --git a/src/ru/BSL/Tests/src/CommonModules/OPIt_WebSocket/Module.bsl b/src/ru/BSL/Tests/src/CommonModules/OPIt_WebSocket/Module.bsl index 4dac6142f2..f8b119c6ab 100644 --- a/src/ru/BSL/Tests/src/CommonModules/OPIt_WebSocket/Module.bsl +++ b/src/ru/BSL/Tests/src/CommonModules/OPIt_WebSocket/Module.bsl @@ -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://"); diff --git a/src/ru/OInt/api/tcp/Modules/OPI_TCP.os b/src/ru/OInt/api/tcp/Modules/OPI_TCP.os index 3b83243341..eeae9f3137 100644 --- a/src/ru/OInt/api/tcp/Modules/OPI_TCP.os +++ b/src/ru/OInt/api/tcp/Modules/OPI_TCP.os @@ -575,7 +575,7 @@ // Получает структуру настроек для запуска логирования при старте сервера // // Параметры: -// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory +// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory // МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count // ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path // diff --git a/src/ru/OInt/api/ws/Modules/OPI_WebSocket.os b/src/ru/OInt/api/ws/Modules/OPI_WebSocket.os index 039311e347..929d0e7853 100644 --- a/src/ru/OInt/api/ws/Modules/OPI_WebSocket.os +++ b/src/ru/OInt/api/ws/Modules/OPI_WebSocket.os @@ -57,7 +57,7 @@ // Получает структуру настроек для запуска логирования при старте сервера // // Параметры: -// ЗаписьВПамять - Булево - Запись лог в память для дальнейшего получения из объекта компоненты - memory +// ЗаписьВПамять - Булево - Запись лога в память для дальнейшего получения из объекта компоненты - memory // МаксимумСобытий - Число - Максимальное число события, хранящееся в память - count // ПутьКФайлу - Строка - Путь к файлу для сохранения полного лога, если необходимо - path //