1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-23 21:29:38 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot) 2025-01-21 17:01:15 +03:00
parent f07d020d04
commit e9e90962d1
33 changed files with 7727 additions and 6353 deletions

4
ci/clitesten vendored
View File

@ -2046,6 +2046,10 @@ def test_tcp(){
powershell encoding: 'UTF-8', script:'./oint.exe tcp ProcessRequest --address "test" --data "test" --string "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe tcp ActualiseIncomingConnections --srv "test" --debug --test '
}
}

4
ci/clitestru vendored
View File

@ -2046,6 +2046,10 @@ def test_tcp(){
powershell encoding: 'UTF-8', script:'./oint.exe tcp ОбработатьЗапрос --address "test" --data "test" --string "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe tcp АктуализироватьВходящиеСоединения --srv "test" --debug --test '
}
}

View File

@ -0,0 +1,34 @@
---
sidebar_position: 9
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Actualise incoming connections
Removes inactive connections from the pool
`Function ActualiseIncomingConnections(Val TCPServer) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | --srv | Arbitrary | ✔ | TCP server. See CreateServer |
Returns: Structure Of KeyAndValue - Execution information
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Awaiting connection
Blocks programm execution until a new connection is established
`Function AwaitingConnection(Val TCPServer, Val Timeout = 0) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
| Timeout | - | Number | &#x2716; | Maximum waiting time for connections. 0 > unlimited |
Returns: Structure Of KeyAndValue - Structure with new connection ID or error information
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 7
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Close incoming connection
Closes an existing connection by identifier
`Function CloseIncomingConnection(Val TCPServer, Val ConnectionID) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
| ConnectionID | - | String, Number | &#x2714; | Active connection ID. See AwaitingConnection |
Returns: Structure Of KeyAndValue - Execution information
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Create server
Creates a new TCP server and sets the port
`Function CreateServer(Val Port, Start = False) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Port | - | Number | &#x2714; | Available port number for the server |
| Start | - | Boolean | &#x2716; | True > immediately starts the created server |
Returns: Arbitrary - Returns a running TCP server object on successful creation or a structure with an error description
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,42 @@
---
sidebar_position: 8
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get incoming connections
Gets the list of connections in the pool
`Function GetIncomingConnections(Val TCPServer) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
Returns: Structure Of KeyAndValue - Execution information
<br/>
:::tip
The presence of a connection in the pool does not guarantee that it is active. The ActualiseIncomingConnections function is used to clear the pool of inactive connections
:::
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 10
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Is server
Specifies if the value passed is a TCP server object
`Function IsServer(Val Value) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Value | - | Arbitrary | &#x2714; | arbitrary value to check |
Returns: Boolean - Is server
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,41 @@
---
sidebar_position: 4
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Receive data
Gets data from the flow stream of an existing connection
`Function ReceiveData(Val TCPServer, Val ConnectionID, Val MaxSize = 0) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
| ConnectionID | - | String, Number | &#x2714; | Active connection ID. See AwaitingConnection |
| MaxSize | - | Number | &#x2716; | Max data size. 0 > to the end of the stream |
Returns: Structure Of KeyAndValue, BinaryData - Binary data on success or structure with error description
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,44 @@
---
sidebar_position: 5
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Send data
Sends data to the client by connection ID
`Function SendData(Val TCPServer, Val ConnectionID, Val Data) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
| ConnectionID | - | String, Number | &#x2714; | Active connection ID. See AwaitingConnection |
| Data | - | BinaryData | &#x2714; | Sending data |
Returns: Structure Of KeyAndValue - Execution information
<br/>
:::tip
Parameters with Binary data type can also accept file paths on disk and URLs
:::
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Start server
Starts a previously created server
`Function StartServer(Val TCPServer) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
Returns: Structure Of KeyAndValue - Structure with information about the startup success
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 6
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Stop server
Stops a running server
`Function StopServer(Val TCPServer) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| TCPServer | - | Arbitrary | &#x2714; | TCP server. See CreateServer |
Returns: Structure Of KeyAndValue - Execution information
<br/>
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,4 @@
{
"label": "Server methods",
"position": "3"
}

View File

@ -0,0 +1,34 @@
---
sidebar_position: 9
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Актуализировать входящие соединения
Удаляет неактивные соединения из пула
`Функция АктуализироватьВходящиеСоединения(Знач TCPСервер) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | --srv | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Ожидать подключение
Блокирует выполнение программы до появления нового подключения
`Функция ОжидатьПодключение(Знач TCPСервер, Знач Таймаут = 0) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
| Таймаут | - | Число | &#x2716; | Максимальное время ожидания подключений. 0 > бесконечно |
Возвращаемое значение: Структура Из КлючИЗначение - Структура с идентификатором нового подключения или ошибкой
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 7
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Закрыть входящее соединение
Закрывает существующее соединение по идентификатору
`Функция ЗакрытьВходящееСоединение(Знач TCPСервер, Знач IDПодключения) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
| IDПодключения | - | Строка, Число | &#x2714; | ID активного подключения. См. ОжидатьПодключение |
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,40 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Создать сервер
Создает новый TCP сервер и устаналивает порт
`Функция СоздатьСервер(Знач Порт, Запустить = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Порт | - | Число | &#x2714; | Номер свободного порта для сервера |
| Запустить | - | Булево | &#x2716; | Истина > сразу запускает созданный сервер |
Возвращаемое значение: Произвольный - Возвращает объект запущенного TCP сервера при успешном создании или структуру с описанием ошибки
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,42 @@
---
sidebar_position: 8
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить входящие соединения
Получает список соединений в пуле
`Функция ПолучитьВходящиеСоединения(Знач TCPСервер) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
<br/>
:::tip
Наличие соединения в пуле не гарантирует его активности. Для очистки пула от неактивных соединений используется функция АктуализироватьВходящиеСоединения
:::
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 10
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Это сервер
Определяет, является ли переданное значение объектом TCP сервера
`Функция ЭтоСервер(Знач Значение) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Значение | - | Произвольный | &#x2714; | произвольное значение для проверки |
Возвращаемое значение: Булево - Это сервер
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,41 @@
---
sidebar_position: 4
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить данные
Получает данные из потока существующего соединения
`Функция ПолучитьДанные(Знач TCPСервер, Знач IDПодключения, Знач МаксимальныйРазмер = 0) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
| IDПодключения | - | Строка, Число | &#x2714; | ID активного подключения. См. ОжидатьПодключение |
| МаксимальныйРазмер | - | Число | &#x2716; | Максимальный размер данных. 0 > до конца потока |
Возвращаемое значение: Структура Из КлючИЗначение, ДвоичныеДанные - Двоичные данные при успехе или структура с описанием ошибки
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,44 @@
---
sidebar_position: 5
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Отправить данные
Отправляет данные клиенту по идентификатору подключения
`Функция ОтправитьДанные(Знач TCPСервер, Знач IDПодключения, Знач Данные) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
| IDПодключения | - | Строка, Число | &#x2714; | ID активного подключения. См. ОжидатьПодключение |
| Данные | - | ДвоичныеДанные | &#x2714; | Данные для отправки |
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
<br/>
:::tip
Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
:::
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Запустить сервер
Запускает ранее созданный сервер
`Функция ЗапуститьСервер(Знач TCPСервер) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
Возвращаемое значение: Структура Из КлючИЗначение - Структура с информацией об успешности запуска
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,39 @@
---
sidebar_position: 6
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Отключить сервер
Останавливает запущенный сервер
`Функция ОтключитьСервер(Знач TCPСервер) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| TCPСервер | - | Произвольный | &#x2714; | TCP сервер. См. СоздатьСервер |
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
<br/>
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,4 @@
{
"label": "Методы сервера",
"position": "3"
}

File diff suppressed because it is too large Load Diff

View File

@ -228,6 +228,266 @@ EndFunction
#EndRegion
#Region ServerMethods
// Create server !NOCLI
// Creates a new TCP server and sets the port
//
// Parameters:
// Port - Number - Available port number for the server - port
// Start - Boolean - True > immediately starts the created server - start
//
// Returns:
// Arbitrary - Returns a running TCP server object on successful creation or a structure with an error description
Function CreateServer(Val Port, Start = False) Export
OPI_TypeConversion.GetNumber(Port);
OPI_TypeConversion.GetBoolean(Start);
TCPServer = AttachAddInOnServer("OPI_TCPServer");
TCPServer.Port = Port;
If Start Then
Result = StartServer(TCPServer);
Success = Undefined;
FlagExist = OPI_Tools.CollectionFieldExist(Result, "result", Success);
Success = ?(FlagExist, Success, False);
Return ?(Success, TCPServer, Result);
Else
Return TCPServer;
EndIf;
EndFunction
// Start server !NOCLI
// Starts a previously created server
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Structure with information about the startup success
Function StartServer(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.Start();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Awaiting connection !NOCLI
// Blocks programm execution until a new connection is established
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// Timeout - Number - Maximum waiting time for connections. 0 > unlimited - timeout
//
// Returns:
// Structure Of KeyAndValue - Structure with new connection ID or error information
Function AwaitingConnection(Val TCPServer, Val Timeout = 0) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetNumber(Timeout);
NewConnection = TCPServer.Wait(Timeout);
Return NewConnection;
EndFunction
// Receive data !NOCLI
// Gets data from the flow stream of an existing connection
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
// MaxSize - Number - Max data size. 0 > to the end of the stream - maxsize
//
// Returns:
// Structure Of KeyAndValue, BinaryData - Binary data on success or structure with error description
Function ReceiveData(Val TCPServer, Val ConnectionID, Val MaxSize = 0) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
OPI_TypeConversion.GetNumber(MaxSize);
Data = TCPServer.Receive(ConnectionID, MaxSize);
If TypeOf(Data) = Type("String") Then
Try
Result = OPI_Tools.JsonToStructure(Data, False);
Except
Result = New Structure("result,error", False, Data);
EndTry;
Else
Result = Data;
EndIf;
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Send data !NOCLI
// Sends data to the client by connection ID
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
// Data - BinaryData - Sending data - data
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function SendData(Val TCPServer, Val ConnectionID, Val Data) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
OPI_TypeConversion.GetBinaryData(Data);
Result = TCPServer.Send(ConnectionID, Data);
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Stop server !NOCLI
// Stops a running server
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function StopServer(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.Stop();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Close incoming connection !NOCLI
// Closes an existing connection by identifier
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function CloseIncomingConnection(Val TCPServer, Val ConnectionID) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
Result = TCPServer.Close(ConnectionID);
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Get incoming connections !NOCLI
// Gets the list of connections in the pool
//
// Note
// The presence of a connection in the pool does not guarantee that it is active.^^
// The ActualiseIncomingConnections function is used to clear the pool of inactive connections
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function GetIncomingConnections(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.ListConnections();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Actualise incoming connections
// Removes inactive connections from the pool
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function ActualiseIncomingConnections(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.UpdateConnections();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Is server !NOCLI
// Specifies if the value passed is a TCP server object
//
// Parameters:
// Value - Arbitrary - arbitrary value to check - value
//
// Returns:
// Boolean - Is server
Function IsServer(Val Value) Export
Return String(TypeOf(Value)) = "AddIn.OPI_TCPServer.Main";
EndFunction
#EndRegion
#EndRegion
#Region Private
@ -247,4 +507,14 @@ Function AttachAddInOnServer(Val AddInName, Val Class = "Main")
EndFunction
Procedure ProcessResult(Result)
Try
Result = OPI_Tools.JsonToStructure(Result, False);
Except
Result = New Structure("result,error", False, Result);
EndTry;
EndProcedure
#EndRegion

View File

@ -228,6 +228,266 @@ EndFunction
#EndRegion
#Region ServerMethods
// Create server !NOCLI
// Creates a new TCP server and sets the port
//
// Parameters:
// Port - Number - Available port number for the server - port
// Start - Boolean - True > immediately starts the created server - start
//
// Returns:
// Arbitrary - Returns a running TCP server object on successful creation or a structure with an error description
Function CreateServer(Val Port, Start = False) Export
OPI_TypeConversion.GetNumber(Port);
OPI_TypeConversion.GetBoolean(Start);
TCPServer = AttachAddInOnServer("OPI_TCPServer");
TCPServer.Port = Port;
If Start Then
Result = StartServer(TCPServer);
Success = Undefined;
FlagExists = OPI_Tools.CollectionFieldExists(Result, "result", Success);
Success = ?(FlagExists, Success, False);
Return ?(Success, TCPServer, Result);
Else
Return TCPServer;
EndIf;
EndFunction
// Start server !NOCLI
// Starts a previously created server
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Structure with information about the startup success
Function StartServer(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.Start();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Awaiting connection !NOCLI
// Blocks programm execution until a new connection is established
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// Timeout - Number - Maximum waiting time for connections. 0 > unlimited - timeout
//
// Returns:
// Structure Of KeyAndValue - Structure with new connection ID or error information
Function AwaitingConnection(Val TCPServer, Val Timeout = 0) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetNumber(Timeout);
NewConnection = TCPServer.Wait(Timeout);
Return NewConnection;
EndFunction
// Receive data !NOCLI
// Gets data from the flow stream of an existing connection
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
// MaxSize - Number - Max data size. 0 > to the end of the stream - maxsize
//
// Returns:
// Structure Of KeyAndValue, BinaryData - Binary data on success or structure with error description
Function ReceiveData(Val TCPServer, Val ConnectionID, Val MaxSize = 0) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
OPI_TypeConversion.GetNumber(MaxSize);
Data = TCPServer.Receive(ConnectionID, MaxSize);
If TypeOf(Data) = Type("String") Then
Try
Result = OPI_Tools.JsonToStructure(Data, False);
Except
Result = New Structure("result,error", False, Data);
EndTry;
Else
Result = Data;
EndIf;
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Send data !NOCLI
// Sends data to the client by connection ID
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
// Data - BinaryData - Sending data - data
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function SendData(Val TCPServer, Val ConnectionID, Val Data) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
OPI_TypeConversion.GetBinaryData(Data);
Result = TCPServer.Send(ConnectionID, Data);
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Stop server !NOCLI
// Stops a running server
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function StopServer(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.Stop();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Close incoming connection !NOCLI
// Closes an existing connection by identifier
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
// ConnectionID - String, Number - Active connection ID. See AwaitingConnection - conn
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function CloseIncomingConnection(Val TCPServer, Val ConnectionID) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
OPI_TypeConversion.GetLine(ConnectionID);
Result = TCPServer.Close(ConnectionID);
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Get incoming connections !NOCLI
// Gets the list of connections in the pool
//
// Note
// The presence of a connection in the pool does not guarantee that it is active.^^
// The ActualiseIncomingConnections function is used to clear the pool of inactive connections
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function GetIncomingConnections(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.ListConnections();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Actualise incoming connections
// Removes inactive connections from the pool
//
// Parameters:
// TCPServer - Arbitrary - TCP server. See CreateServer - srv
//
// Returns:
// Structure Of KeyAndValue - Execution information
Function ActualiseIncomingConnections(Val TCPServer) Export
If Not OPI_Tools.IsServer(TCPServer) Then
Raise "The passed value is not a TCP server!";
EndIf;
Result = TCPServer.UpdateConnections();
ProcessResult(Result);
//@skip-check constructor-function-return-section
Return Result;
EndFunction
// Is server !NOCLI
// Specifies if the value passed is a TCP server object
//
// Parameters:
// Value - Arbitrary - arbitrary value to check - value
//
// Returns:
// Boolean - Is server
Function IsServer(Val Value) Export
Return String(TypeOf(Value)) = "AddIn.OPI_TCPServer.Main";
EndFunction
#EndRegion
#EndRegion
#Region Private
@ -247,4 +507,14 @@ Function AttachAddInOnServer(Val AddInName, Val Class = "Main")
EndFunction
Procedure ProcessResult(Result)
Try
Result = OPI_Tools.JsonToStructure(Result, False);
Except
Result = New Structure("result,error", False, Result);
EndTry;
EndProcedure
#EndRegion

View File

@ -40,8 +40,8 @@
</configurationInformationAddress>
<subsystems>Subsystem.OPI_Integrations</subsystems>
<commonTemplates>CommonTemplate.OPI_TCPClient</commonTemplates>
<commonTemplates>CommonTemplate.OPI_SQLite</commonTemplates>
<commonTemplates>CommonTemplate.OPI_TCPServer</commonTemplates>
<commonTemplates>CommonTemplate.OPI_SQLite</commonTemplates>
<commonModules>CommonModule.OPI_Airtable</commonModules>
<commonModules>CommonModule.OPI_Bitrix24</commonModules>
<commonModules>CommonModule.OPI_CDEK</commonModules>

View File

@ -40,6 +40,17 @@
NewLine.Описание = "An attribute of receiving the response as a string (optional, def. val. - Yes)";
NewLine.Область = "Client methods";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "tcp";
NewLine.Модуль = "OPI_TCP";
NewLine.Метод = "ActualiseIncomingConnections";
NewLine.МетодПоиска = "ACTUALISEINCOMINGCONNECTIONS";
NewLine.Параметр = "--srv";
NewLine.Описание = "TCP server. See CreateServer";
NewLine.Область = "Server methods";
NewLine.ОписаниеМетода = "Removes inactive connections from the pool";
Return CompositionTable;
EndFunction

View File

@ -232,252 +232,252 @@
// Создать сервер !NOCLI
// Создает новый TCP сервер и устаналивает порт
//
//
// Параметры:
// Порт - Число - Номер свободного порта для сервера - port
// Запустить - Булево - Истина > сразу запускает созданный сервер - start
//
//
// Возвращаемое значение:
// Произвольный - Возвращает объект запущенного TCP сервера при успешном создании или структуру с описанием ошибки
Функция СоздатьСервер(Знач Порт, Запустить = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
OPI_ПреобразованиеТипов.ПолучитьБулево(Запустить);
TCPСервер = ПодключитьКомпонентуНаСервере("OPI_TCPServer");
TCPСервер = ПодключитьКомпонентуНаСервере("OPI_TCPServer");
TCPСервер.Port = Порт;
Если Запустить Тогда
Результат = ЗапуститьСервер(TCPСервер);
Успех = Неопределено;
ЕстьПризнак = OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "result", Успех);
Успех = ?(ЕстьПризнак, Успех, Ложь);
Успех = ?(ЕстьПризнак, Успех, Ложь);
Возврат ?(Успех, TCPСервер, Результат);
Иначе
Возврат TCPСервер;
КонецЕсли;
КонецФункции
// Запустить сервер !NOCLI
// Запускает ранее созданный сервер
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура с информацией об успешности запуска
Функция ЗапуститьСервер(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.Start();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Ожидать подключение !NOCLI
// Блокирует выполнение программы до появления нового подключения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// Таймаут - Число - Максимальное время ожидания подключений. 0 > бесконечно - timeout
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура с идентификатором нового подключения или ошибкой
Функция ОжидатьПодключение(Знач TCPСервер, Знач Таймаут = 0) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
НовоеПодключение = TCPСервер.Wait(Таймаут);
Возврат НовоеПодключение;
КонецФункции
// Получить данные !NOCLI
// Получает дванные из потока существующего соединения
//
// Получает данные из потока существующего соединения
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
// МаксимальныйРазмер - Число - Максимальный размер данных. 0 > до конца потока - maxsize
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение, ДвоичныеДанные - Двоичные данные при успехе или структура с описанием ошибки
Функция ПолучитьДанные(Знач TCPСервер, Знач IDПодключения, Знач МаксимальныйРазмер = 0) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
Данные = TCPСервер.Receive(IDПодключения, МаксимальныйРазмер);
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Попытка
Результат = OPI_Инструменты.JsonВСтруктуру(Данные, Ложь);
Исключение
Результат = Новый Структура("result,error", Ложь, Данные);
КонецПопытки;
Иначе
Результат = Данные;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Отправить данные !NOCLI
// Отправляет данные клиенту по идентификатору подключения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
// Данные - ДвоичныеДанные - Данные для отправки - data
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ОтправитьДанные(Знач TCPСервер, Знач IDПодключения, Знач Данные) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
Результат = TCPСервер.Send(IDПодключения, Данные);
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Отключить сервер !NOCLI
// Останавливает запущенный сервер
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ОтключитьСервер(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.Stop();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Закрыть входящее соединение !NOCLI
// Закрывает существующее соединение по идентификатору
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ЗакрытьВходящееСоединение(Знач TCPСервер, Знач IDПодключения) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
Результат = TCPСервер.Close(IDПодключения);
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Получить входящие соединения !NOCLI
// Получает список соединений в пуле
//
//
// Примечание:
// Наличие соединения в пуле не гарантирует его активности.^^
// Для очистки пула от неактивных соединений используется функция АктуализироватьВходящиеСоединения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
// Структура Из КлючИЗначение - Информация о выполнении
Функция ПолучитьВходящиеСоединения(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.ListConnections();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Актуализировать входящие соединения
// Удаляет неактивные соединения из пула
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
// Структура Из КлючИЗначение - Информация о выполнении
Функция АктуализироватьВходящиеСоединения(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.UpdateConnections();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Это сервер !NOCLI
// Определяет, является ли переданное значение
//
// Определяет, является ли переданное значение объектом TCP сервера
//
// Параметры:
// Значение - Произвольный - произвольное значение для проверки - value
//
//
// Возвращаемое значение:
// Булево - Это сервер
Функция ЭтоСервер(Знач Значение) Экспорт
@ -508,13 +508,13 @@
КонецФункции
Процедура ОбработатьРезультат(Результат)
Попытка
Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
Исключение
Результат = Новый Структура("result,error", Ложь, Результат);
КонецПопытки;
КонецПроцедуры
#КонецОбласти

View File

@ -2132,9 +2132,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -232,252 +232,252 @@
// Создать сервер !NOCLI
// Создает новый TCP сервер и устаналивает порт
//
//
// Параметры:
// Порт - Число - Номер свободного порта для сервера - port
// Запустить - Булево - Истина > сразу запускает созданный сервер - start
//
//
// Возвращаемое значение:
// Произвольный - Возвращает объект запущенного TCP сервера при успешном создании или структуру с описанием ошибки
Функция СоздатьСервер(Знач Порт, Запустить = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
OPI_ПреобразованиеТипов.ПолучитьБулево(Запустить);
TCPСервер = ПодключитьКомпонентуНаСервере("OPI_TCPServer");
TCPСервер = ПодключитьКомпонентуНаСервере("OPI_TCPServer");
TCPСервер.Port = Порт;
Если Запустить Тогда
Результат = ЗапуститьСервер(TCPСервер);
Успех = Неопределено;
ЕстьПризнак = OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "result", Успех);
Успех = ?(ЕстьПризнак, Успех, Ложь);
Успех = ?(ЕстьПризнак, Успех, Ложь);
Возврат ?(Успех, TCPСервер, Результат);
Иначе
Возврат TCPСервер;
КонецЕсли;
КонецФункции
// Запустить сервер !NOCLI
// Запускает ранее созданный сервер
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура с информацией об успешности запуска
Функция ЗапуститьСервер(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.Start();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Ожидать подключение !NOCLI
// Блокирует выполнение программы до появления нового подключения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// Таймаут - Число - Максимальное время ожидания подключений. 0 > бесконечно - timeout
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура с идентификатором нового подключения или ошибкой
Функция ОжидатьПодключение(Знач TCPСервер, Знач Таймаут = 0) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
НовоеПодключение = TCPСервер.Wait(Таймаут);
Возврат НовоеПодключение;
КонецФункции
// Получить данные !NOCLI
// Получает данные из потока существующего соединения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
// МаксимальныйРазмер - Число - Максимальный размер данных. 0 > до конца потока - maxsize
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение, ДвоичныеДанные - Двоичные данные при успехе или структура с описанием ошибки
Функция ПолучитьДанные(Знач TCPСервер, Знач IDПодключения, Знач МаксимальныйРазмер = 0) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
OPI_ПреобразованиеТипов.ПолучитьЧисло(МаксимальныйРазмер);
Данные = TCPСервер.Receive(IDПодключения, МаксимальныйРазмер);
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Попытка
Результат = OPI_Инструменты.JsonВСтруктуру(Данные, Ложь);
Исключение
Результат = Новый Структура("result,error", Ложь, Данные);
КонецПопытки;
Иначе
Результат = Данные;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Отправить данные !NOCLI
// Отправляет данные клиенту по идентификатору подключения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
// Данные - ДвоичныеДанные - Данные для отправки - data
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ОтправитьДанные(Знач TCPСервер, Знач IDПодключения, Знач Данные) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Данные);
Результат = TCPСервер.Send(IDПодключения, Данные);
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Отключить сервер !NOCLI
// Останавливает запущенный сервер
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ОтключитьСервер(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.Stop();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Закрыть входящее соединение !NOCLI
// Закрывает существующее соединение по идентификатору
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
// IDПодключения - Строка, Число - ID активного подключения. См. ОжидатьПодключение - conn
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
Функция ЗакрытьВходящееСоединение(Знач TCPСервер, Знач IDПодключения) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПодключения);
Результат = TCPСервер.Close(IDПодключения);
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Получить входящие соединения !NOCLI
// Получает список соединений в пуле
//
//
// Примечание:
// Наличие соединения в пуле не гарантирует его активности.^^
// Для очистки пула от неактивных соединений используется функция АктуализироватьВходящиеСоединения
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
// Структура Из КлючИЗначение - Информация о выполнении
Функция ПолучитьВходящиеСоединения(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.ListConnections();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Актуализировать входящие соединения
// Удаляет неактивные соединения из пула
//
//
// Параметры:
// TCPСервер - Произвольный - TCP сервер. См. СоздатьСервер - srv
//
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация о выполнении
// Структура Из КлючИЗначение - Информация о выполнении
Функция АктуализироватьВходящиеСоединения(Знач TCPСервер) Экспорт
Если Не OPI_Инструменты.ЭтоСервер(TCPСервер) Тогда
ВызватьИсключение "Переданное значение не является TCP-сервером!";
КонецЕсли;
Результат = TCPСервер.UpdateConnections();
ОбработатьРезультат(Результат);
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
// Это сервер !NOCLI
// Определяет, является ли переданное значение объектом TCP сервера
//
// Определяет, является ли переданное значение объектом TCP сервера
//
// Параметры:
// Значение - Произвольный - произвольное значение для проверки - value
//
//
// Возвращаемое значение:
// Булево - Это сервер
Функция ЭтоСервер(Знач Значение) Экспорт
@ -508,13 +508,13 @@
КонецФункции
Процедура ОбработатьРезультат(Результат)
Попытка
Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);
Исключение
Результат = Новый Структура("result,error", Ложь, Результат);
КонецПопытки;
КонецПроцедуры
#КонецОбласти

View File

@ -40,6 +40,17 @@
НоваяСтрока.Описание = "Признак получения ответа как строки (необяз. по ум. - Да)";
НоваяСтрока.Область = "Методы клиента";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "tcp";
НоваяСтрока.Модуль = "OPI_TCP";
НоваяСтрока.Метод = "АктуализироватьВходящиеСоединения";
НоваяСтрока.МетодПоиска = "АКТУАЛИЗИРОВАТЬВХОДЯЩИЕСОЕДИНЕНИЯ";
НоваяСтрока.Параметр = "--srv";
НоваяСтрока.Описание = "TCP сервер. См. СоздатьСервер";
НоваяСтрока.Область = "Методы сервера";
НоваяСтрока.ОписаниеМетода = "Удаляет неактивные соединения из пула";
Возврат ТаблицаСостава;
КонецФункции