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:
parent
f07d020d04
commit
e9e90962d1
4
ci/clitesten
vendored
4
ci/clitesten
vendored
@ -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
4
ci/clitestru
vendored
@ -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 '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
34
docs/en/md/TCP/Server-methods/Actualise-incoming-connections.mdx
vendored
Normal file
34
docs/en/md/TCP/Server-methods/Actualise-incoming-connections.mdx
vendored
Normal 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/en/md/TCP/Server-methods/Awaiting-connection.mdx
vendored
Normal file
40
docs/en/md/TCP/Server-methods/Awaiting-connection.mdx
vendored
Normal 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 | ✔ | TCP server. See CreateServer |
|
||||
| Timeout | - | Number | ✖ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/en/md/TCP/Server-methods/Close-incoming-connection.mdx
vendored
Normal file
40
docs/en/md/TCP/Server-methods/Close-incoming-connection.mdx
vendored
Normal 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 | ✔ | TCP server. See CreateServer |
|
||||
| ConnectionID | - | String, Number | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/en/md/TCP/Server-methods/Create-server.mdx
vendored
Normal file
40
docs/en/md/TCP/Server-methods/Create-server.mdx
vendored
Normal 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 | ✔ | Available port number for the server |
|
||||
| Start | - | Boolean | ✖ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
42
docs/en/md/TCP/Server-methods/Get-incoming-connections.mdx
vendored
Normal file
42
docs/en/md/TCP/Server-methods/Get-incoming-connections.mdx
vendored
Normal 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 | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/en/md/TCP/Server-methods/Is-server.mdx
vendored
Normal file
39
docs/en/md/TCP/Server-methods/Is-server.mdx
vendored
Normal 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 | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
41
docs/en/md/TCP/Server-methods/Receive-data.mdx
vendored
Normal file
41
docs/en/md/TCP/Server-methods/Receive-data.mdx
vendored
Normal 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 | ✔ | TCP server. See CreateServer |
|
||||
| ConnectionID | - | String, Number | ✔ | Active connection ID. See AwaitingConnection |
|
||||
| MaxSize | - | Number | ✖ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
44
docs/en/md/TCP/Server-methods/Send-data.mdx
vendored
Normal file
44
docs/en/md/TCP/Server-methods/Send-data.mdx
vendored
Normal 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 | ✔ | TCP server. See CreateServer |
|
||||
| ConnectionID | - | String, Number | ✔ | Active connection ID. See AwaitingConnection |
|
||||
| Data | - | BinaryData | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/en/md/TCP/Server-methods/Start-server.mdx
vendored
Normal file
39
docs/en/md/TCP/Server-methods/Start-server.mdx
vendored
Normal 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 | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/en/md/TCP/Server-methods/Stop-server.mdx
vendored
Normal file
39
docs/en/md/TCP/Server-methods/Stop-server.mdx
vendored
Normal 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 | ✔ | 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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/en/md/TCP/Server-methods/_category_.json
vendored
Normal file
4
docs/en/md/TCP/Server-methods/_category_.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Server methods",
|
||||
"position": "3"
|
||||
}
|
34
docs/ru/md/TCP/Server-methods/Actualise-incoming-connections.mdx
vendored
Normal file
34
docs/ru/md/TCP/Server-methods/Actualise-incoming-connections.mdx
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
sidebar_position: 9
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Актуализировать входящие соединения
|
||||
Удаляет неактивные соединения из пула
|
||||
|
||||
|
||||
|
||||
`Функция АктуализироватьВходящиеСоединения(Знач TCPСервер) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | --srv | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/ru/md/TCP/Server-methods/Awaiting-connection.mdx
vendored
Normal file
40
docs/ru/md/TCP/Server-methods/Awaiting-connection.mdx
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Ожидать подключение
|
||||
Блокирует выполнение программы до появления нового подключения
|
||||
|
||||
|
||||
|
||||
`Функция ОжидатьПодключение(Знач TCPСервер, Знач Таймаут = 0) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
| Таймаут | - | Число | ✖ | Максимальное время ожидания подключений. 0 > бесконечно |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Структура с идентификатором нового подключения или ошибкой
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/ru/md/TCP/Server-methods/Close-incoming-connection.mdx
vendored
Normal file
40
docs/ru/md/TCP/Server-methods/Close-incoming-connection.mdx
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Закрыть входящее соединение
|
||||
Закрывает существующее соединение по идентификатору
|
||||
|
||||
|
||||
|
||||
`Функция ЗакрытьВходящееСоединение(Знач TCPСервер, Знач IDПодключения) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
| IDПодключения | - | Строка, Число | ✔ | ID активного подключения. См. ОжидатьПодключение |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
40
docs/ru/md/TCP/Server-methods/Create-server.mdx
vendored
Normal file
40
docs/ru/md/TCP/Server-methods/Create-server.mdx
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Создать сервер
|
||||
Создает новый TCP сервер и устаналивает порт
|
||||
|
||||
|
||||
|
||||
`Функция СоздатьСервер(Знач Порт, Запустить = Ложь) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Порт | - | Число | ✔ | Номер свободного порта для сервера |
|
||||
| Запустить | - | Булево | ✖ | Истина > сразу запускает созданный сервер |
|
||||
|
||||
|
||||
Возвращаемое значение: Произвольный - Возвращает объект запущенного TCP сервера при успешном создании или структуру с описанием ошибки
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
42
docs/ru/md/TCP/Server-methods/Get-incoming-connections.mdx
vendored
Normal file
42
docs/ru/md/TCP/Server-methods/Get-incoming-connections.mdx
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
sidebar_position: 8
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Получить входящие соединения
|
||||
Получает список соединений в пуле
|
||||
|
||||
|
||||
|
||||
`Функция ПолучитьВходящиеСоединения(Знач TCPСервер) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
Наличие соединения в пуле не гарантирует его активности. Для очистки пула от неактивных соединений используется функция АктуализироватьВходящиеСоединения
|
||||
:::
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/ru/md/TCP/Server-methods/Is-server.mdx
vendored
Normal file
39
docs/ru/md/TCP/Server-methods/Is-server.mdx
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
sidebar_position: 10
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Это сервер
|
||||
Определяет, является ли переданное значение объектом TCP сервера
|
||||
|
||||
|
||||
|
||||
`Функция ЭтоСервер(Знач Значение) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Значение | - | Произвольный | ✔ | произвольное значение для проверки |
|
||||
|
||||
|
||||
Возвращаемое значение: Булево - Это сервер
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
41
docs/ru/md/TCP/Server-methods/Receive-data.mdx
vendored
Normal file
41
docs/ru/md/TCP/Server-methods/Receive-data.mdx
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Получить данные
|
||||
Получает данные из потока существующего соединения
|
||||
|
||||
|
||||
|
||||
`Функция ПолучитьДанные(Знач TCPСервер, Знач IDПодключения, Знач МаксимальныйРазмер = 0) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
| IDПодключения | - | Строка, Число | ✔ | ID активного подключения. См. ОжидатьПодключение |
|
||||
| МаксимальныйРазмер | - | Число | ✖ | Максимальный размер данных. 0 > до конца потока |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение, ДвоичныеДанные - Двоичные данные при успехе или структура с описанием ошибки
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
44
docs/ru/md/TCP/Server-methods/Send-data.mdx
vendored
Normal file
44
docs/ru/md/TCP/Server-methods/Send-data.mdx
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Отправить данные
|
||||
Отправляет данные клиенту по идентификатору подключения
|
||||
|
||||
|
||||
|
||||
`Функция ОтправитьДанные(Знач TCPСервер, Знач IDПодключения, Знач Данные) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
| IDПодключения | - | Строка, Число | ✔ | ID активного подключения. См. ОжидатьПодключение |
|
||||
| Данные | - | ДвоичныеДанные | ✔ | Данные для отправки |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
|
||||
:::
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/ru/md/TCP/Server-methods/Start-server.mdx
vendored
Normal file
39
docs/ru/md/TCP/Server-methods/Start-server.mdx
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Запустить сервер
|
||||
Запускает ранее созданный сервер
|
||||
|
||||
|
||||
|
||||
`Функция ЗапуститьСервер(Знач TCPСервер) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Структура с информацией об успешности запуска
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
39
docs/ru/md/TCP/Server-methods/Stop-server.mdx
vendored
Normal file
39
docs/ru/md/TCP/Server-methods/Stop-server.mdx
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Отключить сервер
|
||||
Останавливает запущенный сервер
|
||||
|
||||
|
||||
|
||||
`Функция ОтключитьСервер(Знач TCPСервер) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| TCPСервер | - | Произвольный | ✔ | TCP сервер. См. СоздатьСервер |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - Информация о выполнении
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
:::caution
|
||||
**NOCLI:** данный метод недоступен для использования в CLI версии
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/ru/md/TCP/Server-methods/_category_.json
vendored
Normal file
4
docs/ru/md/TCP/Server-methods/_category_.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Методы сервера",
|
||||
"position": "3"
|
||||
}
|
12386
service/dictionaries/en.json
vendored
12386
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
270
src/en/OInt/core/Modules/OPI_TCP.os
vendored
270
src/en/OInt/core/Modules/OPI_TCP.os
vendored
@ -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
|
||||
|
270
src/en/OPI/src/CommonModules/OPI_TCP/Module.bsl
vendored
270
src/en/OPI/src/CommonModules/OPI_TCP/Module.bsl
vendored
@ -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
|
||||
|
@ -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>
|
||||
|
11
src/en/cli/data/Classes/internal/Classes/tcp.os
vendored
11
src/en/cli/data/Classes/internal/Classes/tcp.os
vendored
@ -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
|
||||
|
||||
|
158
src/ru/OInt/core/Modules/OPI_TCP.os
vendored
158
src/ru/OInt/core/Modules/OPI_TCP.os
vendored
@ -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", Ложь, Результат);
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -2132,9 +2132,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -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", Ложь, Результат);
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -40,6 +40,17 @@
|
||||
НоваяСтрока.Описание = "Признак получения ответа как строки (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Область = "Методы клиента";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "АктуализироватьВходящиеСоединения";
|
||||
НоваяСтрока.МетодПоиска = "АКТУАЛИЗИРОВАТЬВХОДЯЩИЕСОЕДИНЕНИЯ";
|
||||
НоваяСтрока.Параметр = "--srv";
|
||||
НоваяСтрока.Описание = "TCP сервер. См. СоздатьСервер";
|
||||
НоваяСтрока.Область = "Методы сервера";
|
||||
НоваяСтрока.ОписаниеМетода = "Удаляет неактивные соединения из пула";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user