mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-02-05 13:25:25 +02:00
Main build (Jenkins)
This commit is contained in:
parent
4193e2fe14
commit
b7d78cae9c
62
.github/workflows/oint_test_full_en.yml
vendored
62
.github/workflows/oint_test_full_en.yml
vendored
@ -1305,51 +1305,9 @@ jobs:
|
||||
key: logs-S3
|
||||
path: ./docs/en/results/S3
|
||||
|
||||
|
||||
Testing-MongoDB:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.1
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
TEMP_DEB="$(mktemp)" &&
|
||||
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.16.1/oint_1.16.1_all_en.deb' &&
|
||||
sudo dpkg -i "$TEMP_DEB"
|
||||
rm -f "$TEMP_DEB"
|
||||
|
||||
|
||||
|
||||
- name: Database management
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os "CLI_Mongo_DatabaseManagement"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: logs-MongoDB
|
||||
path: ./docs/en/results/MongoDB
|
||||
|
||||
Encode:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3,Testing-MongoDB]
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3]
|
||||
if: ${{ always() }}
|
||||
permissions:
|
||||
contents: write
|
||||
@ -1697,22 +1655,6 @@ jobs:
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-S3"
|
||||
|
||||
- name: Получить логи MongoDB
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: logs-MongoDB
|
||||
path: ./docs/en/results/MongoDB
|
||||
|
||||
|
||||
- name: Очистка логов MongoDB
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-MongoDB"
|
||||
|
||||
|
||||
- name: Записать данные
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
@ -1725,7 +1667,7 @@ jobs:
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Testing-MongoDB, Encode]
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
|
62
.github/workflows/oint_test_full_ru.yml
vendored
62
.github/workflows/oint_test_full_ru.yml
vendored
@ -1305,51 +1305,9 @@ jobs:
|
||||
key: logs-S3
|
||||
path: ./docs/ru/results/S3
|
||||
|
||||
|
||||
Testing-MongoDB:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.1
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
TEMP_DEB="$(mktemp)" &&
|
||||
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.16.1/oint_1.16.1_all_ru.deb' &&
|
||||
sudo dpkg -i "$TEMP_DEB"
|
||||
rm -f "$TEMP_DEB"
|
||||
|
||||
|
||||
|
||||
- name: Управление базами данных
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os "CLI_Mongo_УправлениеБазамиДанных"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
with:
|
||||
key: logs-MongoDB
|
||||
path: ./docs/ru/results/MongoDB
|
||||
|
||||
Encode:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3,Testing-MongoDB]
|
||||
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3]
|
||||
if: ${{ always() }}
|
||||
permissions:
|
||||
contents: write
|
||||
@ -1697,22 +1655,6 @@ jobs:
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-S3"
|
||||
|
||||
- name: Получить логи MongoDB
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: logs-MongoDB
|
||||
path: ./docs/ru/results/MongoDB
|
||||
|
||||
|
||||
- name: Очистка логов MongoDB
|
||||
run: |
|
||||
curl -L \
|
||||
-X DELETE \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-MongoDB"
|
||||
|
||||
|
||||
- name: Записать данные
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
@ -1725,7 +1667,7 @@ jobs:
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Testing-MongoDB, Encode]
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
|
@ -656,17 +656,6 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Testing-MongoDB') {
|
||||
steps {
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os" "CLI_Mongo_DatabaseManagement"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
post{
|
||||
always{
|
||||
|
@ -656,17 +656,6 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Testing-MongoDB') {
|
||||
steps {
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os" "CLI_Mongo_УправлениеБазамиДанных"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
post{
|
||||
always{
|
||||
|
16
ci/clitesten
16
ci/clitesten
@ -86,6 +86,11 @@ pipeline {
|
||||
test_slack()
|
||||
}
|
||||
}
|
||||
stage('tcp'){
|
||||
steps{
|
||||
test_tcp()
|
||||
}
|
||||
}
|
||||
stage('telegram'){
|
||||
steps{
|
||||
test_telegram()
|
||||
@ -1915,6 +1920,16 @@ def test_slack(){
|
||||
}
|
||||
|
||||
|
||||
def test_tcp(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe tcp ConnectAndReceiveData --address "test" --ssl "test" --timeout "test" --size "test" --string "test" --enc "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_telegram(){
|
||||
|
||||
|
||||
@ -2693,6 +2708,7 @@ test_notion()
|
||||
test_ozon()
|
||||
test_s3()
|
||||
test_slack()
|
||||
test_tcp()
|
||||
test_telegram()
|
||||
test_twitter()
|
||||
test_viber()
|
||||
|
16
ci/clitestru
16
ci/clitestru
@ -86,6 +86,11 @@ pipeline {
|
||||
test_slack()
|
||||
}
|
||||
}
|
||||
stage('tcp'){
|
||||
steps{
|
||||
test_tcp()
|
||||
}
|
||||
}
|
||||
stage('telegram'){
|
||||
steps{
|
||||
test_telegram()
|
||||
@ -1915,6 +1920,16 @@ def test_slack(){
|
||||
}
|
||||
|
||||
|
||||
def test_tcp(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe tcp ПодключитьсяИПолучитьДанные --address "test" --ssl "test" --timeout "test" --size "test" --string "test" --enc "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_telegram(){
|
||||
|
||||
|
||||
@ -2693,6 +2708,7 @@ test_notion()
|
||||
test_ozon()
|
||||
test_s3()
|
||||
test_slack()
|
||||
test_tcp()
|
||||
test_telegram()
|
||||
test_twitter()
|
||||
test_viber()
|
||||
|
11
ci/ostesten
11
ci/ostesten
@ -656,17 +656,6 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Testing-MongoDB') {
|
||||
steps {
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_Tests.os" "Mongo_DatabaseManagement"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
post{
|
||||
always{
|
||||
|
11
ci/ostestru
11
ci/ostestru
@ -656,17 +656,6 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('Testing-MongoDB') {
|
||||
steps {
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "Mongo_УправлениеБазамиДанных"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
post{
|
||||
always{
|
||||
|
42
docs/en/md/TCP/Tcp-client/Connect-and-receive-data.mdx
Normal file
42
docs/en/md/TCP/Tcp-client/Connect-and-receive-data.mdx
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Connect and receive data
|
||||
Establishes a connection and reads data until completion or by limits
|
||||
|
||||
|
||||
|
||||
`Function ConnectAndReceiveData(Val Address, Val SSL = False, Val Timeout = 0, Val Size = 0, Val AsString = True, Val Encoding = "UTF-8") Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| Address | --address | String | ✔ | Address and port |
|
||||
| SSL | --ssl | Boolean | ✖ | Flag for using a secure connection |
|
||||
| Timeout | --timeout | Number | ✖ | Data reading time (sec). 0 > until the end of the message |
|
||||
| Size | --size | Number | ✖ | Maximum data size. 0 > no limit |
|
||||
| AsString | --string | Boolean | ✖ | True > returns string, False > binary data |
|
||||
| Encoding | --enc | String | ✖ | Encoding of received data |
|
||||
|
||||
|
||||
Returns: String, BinaryData - Received data
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
When the Timeout and Size parameters are set to 0, reading is performed until the message ends
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/en/md/TCP/Tcp-client/_category_.json
Normal file
4
docs/en/md/TCP/Tcp-client/_category_.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Tcp client",
|
||||
"position": "2"
|
||||
}
|
42
docs/ru/md/TCP/Tcp-client/Connect-and-receive-data.mdx
Normal file
42
docs/ru/md/TCP/Tcp-client/Connect-and-receive-data.mdx
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Подключиться и получить данные
|
||||
Создает соединение и читает данные до конца или по ограничениям
|
||||
|
||||
|
||||
|
||||
`Функция ПодключитьсяИПолучитьДанные(Знач Адрес, Знач SSL = Ложь, Знач Таймаут = 0, Знач Размер = 0, Знач Строкой = Истина, Знач Кодировка = "UTF-8") Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Адрес | --address | Строка | ✔ | Адрес и порт для подключения |
|
||||
| SSL | --ssl | Булево | ✖ | Признак использования защищенного соединения |
|
||||
| Таймаут | --timeout | Число | ✖ | Время чтения данных (сек). 0 > до конца сообщения |
|
||||
| Размер | --size | Число | ✖ | Максимальный размер данных. 0 > без ограничений |
|
||||
| Строкой | --string | Булево | ✖ | Истина > возвращает строку, Ложь > двоичные данные |
|
||||
| Кодировка | --enc | Строка | ✖ | Кодировка получаемых данных |
|
||||
|
||||
|
||||
Возвращаемое значение: Строка, ДвоичныеДанные - Полученные данные
|
||||
|
||||
<br/>
|
||||
|
||||
:::tip
|
||||
При установке параметров Таймаут и Размер в 0, чтение производится до окончания сообщения
|
||||
:::
|
||||
<br/>
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/ru/md/TCP/Tcp-client/_category_.json
Normal file
4
docs/ru/md/TCP/Tcp-client/_category_.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Tcp клиент",
|
||||
"position": "2"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
158
src/en/OInt/core/Modules/OPI_TCP.os
Normal file
158
src/en/OInt/core/Modules/OPI_TCP.os
Normal file
@ -0,0 +1,158 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_TCP.os
|
||||
// Lib: TCP
|
||||
// CLI: tcp
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
#Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region TCPClient
|
||||
|
||||
// !NOCLI
|
||||
// Create Connection
|
||||
// Creates a TCP/TLS connection
|
||||
//
|
||||
// Parameters:
|
||||
// Address - String - Address and port - address
|
||||
// SSL - Boolean - Flag for using a secure connection - ssl
|
||||
//
|
||||
// Returns:
|
||||
// Undefined, Arbitrary - Returns the TCP client object on successful connection or undefined
|
||||
Function CreateConnection(Val Address, Val SSL = False) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Address);
|
||||
OPI_TypeConversion.GetBoolean(SSL);
|
||||
|
||||
TCPClient = OPI_Tools.GetAddIn("OPI_TCPClient");
|
||||
|
||||
TCPClient.Address = Address;
|
||||
TCPClient.SSL = SSL;
|
||||
|
||||
Success = TCPClient.Connect();
|
||||
|
||||
Return ?(Success, TCPClient, Undefined);
|
||||
|
||||
EndFunction
|
||||
|
||||
// !NOCLI
|
||||
// Close connection
|
||||
// Explicitly closes a previously created connection
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Connection, see. CreateConnection - tcp
|
||||
//
|
||||
// Returns:
|
||||
// Boolean - always return True
|
||||
Function CloseConnection(Val Connection) Export
|
||||
Return Connection.Disconnect();
|
||||
EndFunction
|
||||
|
||||
// !NOCLI
|
||||
// Receive data
|
||||
// Reads data from the specified connection
|
||||
//
|
||||
// Note
|
||||
// When the Timeout and Size parameters are set to 0, reading is performed until the message ends
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Connection, see. CreateConnection - tcp
|
||||
// Timeout - Number - Data reading time (sec). 0 > until the end of the message - timeout
|
||||
// Size - Number - Maximum data size. 0 > no limit - size
|
||||
//
|
||||
// Returns:
|
||||
// BinaryData - Received data
|
||||
Function ReceiveData(Val Connection, Val Timeout = 0, Val Size = 0) Export
|
||||
|
||||
OPI_TypeConversion.GetNumber(Timeout);
|
||||
OPI_TypeConversion.GetNumber(Size);
|
||||
|
||||
Return Connection.Read(1024, 150, Timeout, Size);
|
||||
|
||||
EndFunction
|
||||
|
||||
// Connect and receive data
|
||||
// Establishes a connection and reads data until completion or by limits
|
||||
//
|
||||
// Note
|
||||
// When the Timeout and Size parameters are set to 0, reading is performed until the message ends
|
||||
//
|
||||
// Parameters:
|
||||
// Address - String - Address and port - address
|
||||
// SSL - Boolean - Flag for using a secure connection - ssl
|
||||
// Timeout - Number - Data reading time (sec). 0 > until the end of the message - timeout
|
||||
// Size - Number - Maximum data size. 0 > no limit - size
|
||||
// AsString - Boolean - True > returns string, False > binary data - string
|
||||
// Encoding - String - Encoding of received data - enc
|
||||
//
|
||||
// Returns:
|
||||
// String, BinaryData - Received data
|
||||
Function ConnectAndReceiveData(Val Address
|
||||
, Val SSL = False
|
||||
, Val Timeout = 0
|
||||
, Val Size = 0
|
||||
, Val AsString = True
|
||||
, Val Encoding = "UTF-8") Export
|
||||
|
||||
OPI_TypeConversion.GetBoolean(AsString);
|
||||
OPI_TypeConversion.GetLine(Encoding);
|
||||
OPI_TypeConversion.GetNumber(Size);
|
||||
OPI_TypeConversion.GetNumber(Timeout);
|
||||
|
||||
Connection = CreateConnection(Address, SSL);
|
||||
|
||||
If Not ValueIsFilled(Connection) Then
|
||||
Raise "Failed to create Connection";
|
||||
EndIf;
|
||||
|
||||
Message = ReceiveData(Connection, Timeout, Size);
|
||||
|
||||
If AsString Then
|
||||
Message = ПолучитьСтрокуИзДвоичныхДанных(Message);
|
||||
EndIf;
|
||||
|
||||
CloseConnection(Connection);
|
||||
|
||||
Return Message;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
@ -12,6 +12,7 @@
|
||||
<module name="OPI_Ozon" file="core/Modules/OPI_Ozon.os"/>
|
||||
<module name="OPI_S3" file="core/Modules/OPI_S3.os"/>
|
||||
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
|
||||
<module name="OPI_TCP" file="core/Modules/OPI_TCP.os"/>
|
||||
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
|
||||
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
|
||||
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
|
||||
|
@ -1528,19 +1528,6 @@ Function RelevantNodeType(Val NodeType)
|
||||
|
||||
EndFunction
|
||||
|
||||
Function AddInsFolderOS() Export
|
||||
|
||||
ProgramDirectory = StrReplace(ProgramDirectory(), "\", "/");
|
||||
|
||||
PathParts = StrSplit(ProgramDirectory, "/");
|
||||
PathParts.Delete(PathParts.UBound());
|
||||
|
||||
AddInsFolder = StrConcat(PathParts, "/") + "/lib/oint/addins/";
|
||||
|
||||
Return AddInsFolder;
|
||||
|
||||
EndFunction
|
||||
|
||||
#Region AddinsManagement
|
||||
|
||||
Function InitializeAddIn(Val AddInName, Val Class, AddIn)
|
||||
@ -1556,25 +1543,26 @@ EndFunction
|
||||
|
||||
Function AttachAddInOnServer(Val AddInName)
|
||||
|
||||
IsWindows = IsWindows();
|
||||
|
||||
If IsWindows() Then
|
||||
Postfix = "_W";
|
||||
Extension = ".dll";
|
||||
Else
|
||||
Postfix = "_L";
|
||||
Extension = ".so";
|
||||
EndIf;
|
||||
|
||||
TemplateName = AddInName + Postfix;
|
||||
|
||||
If IsOneScript() Then
|
||||
TemplateName = AddInsFolderOS() + TemplateName + Extension;
|
||||
TemplateName = AddInsFolderOS() + AddInName + ".zip";
|
||||
Else
|
||||
TemplateName = "CommonTemplate." + TemplateName;
|
||||
TemplateName = "CommonTemplate." + AddInName;
|
||||
EndIf;
|
||||
|
||||
Return AttachAddIn(TemplateName, AddInName, AddInType.Native);
|
||||
Return AttachAddIn(TemplateName, AddInName);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function AddInsFolderOS() Export
|
||||
|
||||
ProgramDirectory = StrReplace(ProgramDirectory(), "\", "/");
|
||||
|
||||
PathParts = StrSplit(ProgramDirectory, "/");
|
||||
PathParts.Delete(PathParts.UBound());
|
||||
|
||||
AddInsFolder = StrConcat(PathParts, "/") + "/lib/oint/addins/";
|
||||
|
||||
Return AddInsFolder;
|
||||
|
||||
EndFunction
|
||||
|
||||
|
158
src/en/OPI/src/CommonModules/OPI_TCP/Module.bsl
Normal file
158
src/en/OPI/src/CommonModules/OPI_TCP/Module.bsl
Normal file
@ -0,0 +1,158 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_TCP.os
|
||||
// Lib: TCP
|
||||
// CLI: tcp
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
// #Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region TCPClient
|
||||
|
||||
// !NOCLI
|
||||
// Create Connection
|
||||
// Creates a TCP/TLS connection
|
||||
//
|
||||
// Parameters:
|
||||
// Address - String - Address and port - address
|
||||
// SSL - Boolean - Flag for using a secure connection - ssl
|
||||
//
|
||||
// Returns:
|
||||
// Undefined, Arbitrary - Returns the TCP client object on successful connection or undefined
|
||||
Function CreateConnection(Val Address, Val SSL = False) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Address);
|
||||
OPI_TypeConversion.GetBoolean(SSL);
|
||||
|
||||
TCPClient = OPI_Tools.GetAddIn("OPI_TCPClient");
|
||||
|
||||
TCPClient.Address = Address;
|
||||
TCPClient.SSL = SSL;
|
||||
|
||||
Success = TCPClient.Connect();
|
||||
|
||||
Return ?(Success, TCPClient, Undefined);
|
||||
|
||||
EndFunction
|
||||
|
||||
// !NOCLI
|
||||
// Close connection
|
||||
// Explicitly closes a previously created connection
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Connection, see. CreateConnection - tcp
|
||||
//
|
||||
// Returns:
|
||||
// Boolean - always return True
|
||||
Function CloseConnection(Val Connection) Export
|
||||
Return Connection.Disconnect();
|
||||
EndFunction
|
||||
|
||||
// !NOCLI
|
||||
// Receive data
|
||||
// Reads data from the specified connection
|
||||
//
|
||||
// Note
|
||||
// When the Timeout and Size parameters are set to 0, reading is performed until the message ends
|
||||
//
|
||||
// Parameters:
|
||||
// Connection - Arbitrary - Connection, see. CreateConnection - tcp
|
||||
// Timeout - Number - Data reading time (sec). 0 > until the end of the message - timeout
|
||||
// Size - Number - Maximum data size. 0 > no limit - size
|
||||
//
|
||||
// Returns:
|
||||
// BinaryData - Received data
|
||||
Function ReceiveData(Val Connection, Val Timeout = 0, Val Size = 0) Export
|
||||
|
||||
OPI_TypeConversion.GetNumber(Timeout);
|
||||
OPI_TypeConversion.GetNumber(Size);
|
||||
|
||||
Return Connection.Read(1024, 150, Timeout, Size);
|
||||
|
||||
EndFunction
|
||||
|
||||
// Connect and receive data
|
||||
// Establishes a connection and reads data until completion or by limits
|
||||
//
|
||||
// Note
|
||||
// When the Timeout and Size parameters are set to 0, reading is performed until the message ends
|
||||
//
|
||||
// Parameters:
|
||||
// Address - String - Address and port - address
|
||||
// SSL - Boolean - Flag for using a secure connection - ssl
|
||||
// Timeout - Number - Data reading time (sec). 0 > until the end of the message - timeout
|
||||
// Size - Number - Maximum data size. 0 > no limit - size
|
||||
// AsString - Boolean - True > returns string, False > binary data - string
|
||||
// Encoding - String - Encoding of received data - enc
|
||||
//
|
||||
// Returns:
|
||||
// String, BinaryData - Received data
|
||||
Function ConnectAndReceiveData(Val Address
|
||||
, Val SSL = False
|
||||
, Val Timeout = 0
|
||||
, Val Size = 0
|
||||
, Val AsString = True
|
||||
, Val Encoding = "UTF-8") Export
|
||||
|
||||
OPI_TypeConversion.GetBoolean(AsString);
|
||||
OPI_TypeConversion.GetLine(Encoding);
|
||||
OPI_TypeConversion.GetNumber(Size);
|
||||
OPI_TypeConversion.GetNumber(Timeout);
|
||||
|
||||
Connection = CreateConnection(Address, SSL);
|
||||
|
||||
If Not ValueIsFilled(Connection) Then
|
||||
Raise "Failed to create Connection";
|
||||
EndIf;
|
||||
|
||||
Message = ReceiveData(Connection, Timeout, Size);
|
||||
|
||||
If AsString Then
|
||||
Message = GetStringFromBinaryData(Message);
|
||||
EndIf;
|
||||
|
||||
CloseConnection(Connection);
|
||||
|
||||
Return Message;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
11
src/en/OPI/src/CommonModules/OPI_TCP/OPI_TCP.mdo
Normal file
11
src/en/OPI/src/CommonModules/OPI_TCP/OPI_TCP.mdo
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ed305045-7f7e-4dae-b254-e1e1bdb32293">
|
||||
<name>OPI_TCP</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>TCP</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -1528,19 +1528,6 @@ Function RelevantNodeType(Val NodeType)
|
||||
|
||||
EndFunction
|
||||
|
||||
Function AddInsFolderOS() Export
|
||||
|
||||
BinDir = StrReplace(BinDir(), "\", "/");
|
||||
|
||||
PathParts = StrSplit(BinDir, "/");
|
||||
PathParts.Delete(PathParts.UBound());
|
||||
|
||||
AddInsFolder = StrConcat(PathParts, "/") + "/lib/oint/addins/";
|
||||
|
||||
Return AddInsFolder;
|
||||
|
||||
EndFunction
|
||||
|
||||
#Region AddinsManagement
|
||||
|
||||
Function InitializeAddIn(Val AddInName, Val Class, AddIn)
|
||||
@ -1556,25 +1543,26 @@ EndFunction
|
||||
|
||||
Function AttachAddInOnServer(Val AddInName)
|
||||
|
||||
IsWindows = IsWindows();
|
||||
|
||||
If IsWindows() Then
|
||||
Postfix = "_W";
|
||||
Extension = ".dll";
|
||||
Else
|
||||
Postfix = "_L";
|
||||
Extension = ".so";
|
||||
EndIf;
|
||||
|
||||
TemplateName = AddInName + Postfix;
|
||||
|
||||
If IsOneScript() Then
|
||||
TemplateName = AddInsFolderOS() + TemplateName + Extension;
|
||||
TemplateName = AddInsFolderOS() + AddInName + ".zip";
|
||||
Else
|
||||
TemplateName = "CommonTemplate." + TemplateName;
|
||||
TemplateName = "CommonTemplate." + AddInName;
|
||||
EndIf;
|
||||
|
||||
Return AttachAddIn(TemplateName, AddInName, AddInType.Native);
|
||||
Return AttachAddIn(TemplateName, AddInName);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function AddInsFolderOS() Export
|
||||
|
||||
BinDir = StrReplace(BinDir(), "\", "/");
|
||||
|
||||
PathParts = StrSplit(BinDir, "/");
|
||||
PathParts.Delete(PathParts.UBound());
|
||||
|
||||
AddInsFolder = StrConcat(PathParts, "/") + "/lib/oint/addins/";
|
||||
|
||||
Return AddInsFolder;
|
||||
|
||||
EndFunction
|
||||
|
||||
|
Binary file not shown.
@ -56,6 +56,7 @@
|
||||
<commonModules>CommonModule.OPI_Notion</commonModules>
|
||||
<commonModules>CommonModule.OPI_Slack</commonModules>
|
||||
<commonModules>CommonModule.OPI_S3</commonModules>
|
||||
<commonModules>CommonModule.OPI_TCP</commonModules>
|
||||
<commonModules>CommonModule.OPI_Telegram</commonModules>
|
||||
<commonModules>CommonModule.OPI_Twitter</commonModules>
|
||||
<commonModules>CommonModule.OPI_Viber</commonModules>
|
||||
|
75
src/en/cli/data/Classes/internal/Classes/tcp.os
Normal file
75
src/en/cli/data/Classes/internal/Classes/tcp.os
Normal file
@ -0,0 +1,75 @@
|
||||
Function ПолучитьСостав() Export
|
||||
|
||||
CompositionTable = New ValueTable();
|
||||
CompositionTable.Columns.Add("Библиотека");
|
||||
CompositionTable.Columns.Add("Модуль");
|
||||
CompositionTable.Columns.Add("Метод");
|
||||
CompositionTable.Columns.Add("МетодПоиска");
|
||||
CompositionTable.Columns.Add("Параметр");
|
||||
CompositionTable.Columns.Add("Описание");
|
||||
CompositionTable.Columns.Add("ОписаниеМетода");
|
||||
CompositionTable.Columns.Add("Область");
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--address";
|
||||
NewLine.Описание = "Address and port";
|
||||
NewLine.Область = "Tcp client";
|
||||
NewLine.ОписаниеМетода = "Establishes a connection and reads data until completion or by limits";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--ssl";
|
||||
NewLine.Описание = "Flag for using a secure connection (optional, def. val. - No)";
|
||||
NewLine.Область = "Tcp client";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--timeout";
|
||||
NewLine.Описание = "Data reading time (sec). 0 > until the end of the message (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Tcp client";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--size";
|
||||
NewLine.Описание = "Maximum data size. 0 > no limit (optional, def. val. - Empty value)";
|
||||
NewLine.Область = "Tcp client";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--string";
|
||||
NewLine.Описание = "True > returns string, False > binary data (optional, def. val. - Yes)";
|
||||
NewLine.Область = "Tcp client";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "tcp";
|
||||
NewLine.Модуль = "OPI_TCP";
|
||||
NewLine.Метод = "ConnectAndReceiveData";
|
||||
NewLine.МетодПоиска = "CONNECTANDRECEIVEDATA";
|
||||
NewLine.Параметр = "--enc";
|
||||
NewLine.Описание = "Encoding of received data (optional, def. val. - UTF-8)";
|
||||
NewLine.Область = "Tcp client";
|
||||
|
||||
Return CompositionTable;
|
||||
EndFunction
|
||||
|
@ -21,6 +21,7 @@
|
||||
СоответствиеКомандМодулей.Вставить("ozon", "OPI_Ozon");
|
||||
СоответствиеКомандМодулей.Вставить("s3", "OPI_S3");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("tcp", "OPI_TCP");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
|
@ -48,71 +48,71 @@
|
||||
// !NOCLI
|
||||
// Открыть соединение
|
||||
// Создает TCP/TLS соединение
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// SSL - Булево - Признак использования защищенного соединения - ssl
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено, Произвольный - Возвращает объект TCP клиента при успешном подключении или неопределено
|
||||
Функция ОткрытьСоединение(Знач Адрес, Знач SSL = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(SSL);
|
||||
|
||||
TCPКлиент = OPI_Инструменты.ПолучитьКомпоненту("OPI_TCPClient");
|
||||
|
||||
TCPКлиент.Address = Адрес;
|
||||
TCPКлиент.SSL = SSL;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Возврат ?(Успех, TCPКлиент, Неопределено);
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(SSL);
|
||||
|
||||
TCPКлиент = OPI_Инструменты.ПолучитьКомпоненту("OPI_TCPClient");
|
||||
|
||||
TCPКлиент.Address = Адрес;
|
||||
TCPКлиент.SSL = SSL;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Возврат ?(Успех, TCPКлиент, Неопределено);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// !NOCLI
|
||||
// Закрыть соединение
|
||||
// Явно закрывает созданное ранее соединение
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - всегда возвращает Истина
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
Возврат Соединение.Disconnect();
|
||||
Возврат Соединение.Disconnect();
|
||||
КонецФункции
|
||||
|
||||
// !NOCLI
|
||||
// Получить данные
|
||||
// Читает данные из указанного соединения
|
||||
//
|
||||
//
|
||||
// Примечание:
|
||||
// При установке параметров Таймаут и Размер в 0, чтение производится до окончания сообщения
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Таймаут - Число - Время чтения данных (сек). 0 > до конца сообщения - timeout
|
||||
// Размер - Число - Максимальный размер данных. 0 > без ограничений - size
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
Функция ПолучитьДанные(Знач Соединение, Знач Таймаут = 0, Знач Размер = 0) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
|
||||
Возврат Соединение.Read(1024, 150, Таймаут, Размер);
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
|
||||
Возврат Соединение.Read(1024, 150, Таймаут, Размер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Подключиться и получить данные
|
||||
// Создает соединение и читает данные до конца или по ограничениям
|
||||
//
|
||||
//
|
||||
// Примечание:
|
||||
// При установке параметров Таймаут и Размер в 0, чтение производится до окончания сообщения
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// SSL - Булево - Признак использования защищенного соединения - ssl
|
||||
@ -120,37 +120,37 @@
|
||||
// Размер - Число - Максимальный размер данных. 0 > без ограничений - size
|
||||
// Строкой - Булево - Истина > возвращает строку, Ложь > двоичные данные - string
|
||||
// Кодировка - Строка - Кодировка получаемых данных - enc
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка, ДвоичныеДанные - Полученные данные
|
||||
Функция ПодключитьсяИПолучитьДанные(Знач Адрес
|
||||
, Знач SSL = Ложь
|
||||
, Знач Таймаут = 0
|
||||
, Знач Размер = 0
|
||||
, Знач Строкой = Истина
|
||||
, Знач Кодировка = "UTF-8") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, SSL);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Соединение) Тогда
|
||||
ВызватьИсключение "Не удалось создать Соединение";
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = ПолучитьДанные(Соединение, Таймаут, Размер);
|
||||
, Знач SSL = Ложь
|
||||
, Знач Таймаут = 0
|
||||
, Знач Размер = 0
|
||||
, Знач Строкой = Истина
|
||||
, Знач Кодировка = "UTF-8") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, SSL);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Соединение) Тогда
|
||||
ВызватьИсключение "Не удалось создать Соединение";
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = ПолучитьДанные(Соединение, Таймаут, Размер);
|
||||
|
||||
Если Строкой Тогда
|
||||
Сообщение = ПолучитьСтрокуИзДвоичныхДанных(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Сообщение;
|
||||
|
||||
Если Строкой Тогда
|
||||
Сообщение = ПолучитьСтрокуИзДвоичныхДанных(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Сообщение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -2038,9 +2038,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -48,71 +48,71 @@
|
||||
// !NOCLI
|
||||
// Открыть соединение
|
||||
// Создает TCP/TLS соединение
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// SSL - Булево - Признак использования защищенного соединения - ssl
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено, Произвольный - Возвращает объект TCP клиента при успешном подключении или неопределено
|
||||
Функция ОткрытьСоединение(Знач Адрес, Знач SSL = Ложь) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(SSL);
|
||||
|
||||
TCPКлиент = OPI_Инструменты.ПолучитьКомпоненту("OPI_TCPClient");
|
||||
|
||||
TCPКлиент.Address = Адрес;
|
||||
TCPКлиент.SSL = SSL;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Возврат ?(Успех, TCPКлиент, Неопределено);
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(SSL);
|
||||
|
||||
TCPКлиент = OPI_Инструменты.ПолучитьКомпоненту("OPI_TCPClient");
|
||||
|
||||
TCPКлиент.Address = Адрес;
|
||||
TCPКлиент.SSL = SSL;
|
||||
|
||||
Успех = TCPКлиент.Connect();
|
||||
|
||||
Возврат ?(Успех, TCPКлиент, Неопределено);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// !NOCLI
|
||||
// Закрыть соединение
|
||||
// Явно закрывает созданное ранее соединение
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - всегда возвращает Истина
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
Возврат Соединение.Disconnect();
|
||||
Возврат Соединение.Disconnect();
|
||||
КонецФункции
|
||||
|
||||
// !NOCLI
|
||||
// Получить данные
|
||||
// Читает данные из указанного соединения
|
||||
//
|
||||
//
|
||||
// Примечание:
|
||||
// При установке параметров Таймаут и Размер в 0, чтение производится до окончания сообщения
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Соединение - Произвольный - Соединение, см. ОткрытьСоединение - tcp
|
||||
// Таймаут - Число - Время чтения данных (сек). 0 > до конца сообщения - timeout
|
||||
// Размер - Число - Максимальный размер данных. 0 > без ограничений - size
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
// ДвоичныеДанные - Полученные данные
|
||||
Функция ПолучитьДанные(Знач Соединение, Знач Таймаут = 0, Знач Размер = 0) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
|
||||
Возврат Соединение.Read(1024, 150, Таймаут, Размер);
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
|
||||
Возврат Соединение.Read(1024, 150, Таймаут, Размер);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Подключиться и получить данные
|
||||
// Создает соединение и читает данные до конца или по ограничениям
|
||||
//
|
||||
//
|
||||
// Примечание:
|
||||
// При установке параметров Таймаут и Размер в 0, чтение производится до окончания сообщения
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Адрес - Строка - Адрес и порт для подключения - address
|
||||
// SSL - Булево - Признак использования защищенного соединения - ssl
|
||||
@ -120,37 +120,37 @@
|
||||
// Размер - Число - Максимальный размер данных. 0 > без ограничений - size
|
||||
// Строкой - Булево - Истина > возвращает строку, Ложь > двоичные данные - string
|
||||
// Кодировка - Строка - Кодировка получаемых данных - enc
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка, ДвоичныеДанные - Полученные данные
|
||||
Функция ПодключитьсяИПолучитьДанные(Знач Адрес
|
||||
, Знач SSL = Ложь
|
||||
, Знач Таймаут = 0
|
||||
, Знач Размер = 0
|
||||
, Знач Строкой = Истина
|
||||
, Знач Кодировка = "UTF-8") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, SSL);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Соединение) Тогда
|
||||
ВызватьИсключение "Не удалось создать Соединение";
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = ПолучитьДанные(Соединение, Таймаут, Размер);
|
||||
, Знач SSL = Ложь
|
||||
, Знач Таймаут = 0
|
||||
, Знач Размер = 0
|
||||
, Знач Строкой = Истина
|
||||
, Знач Кодировка = "UTF-8") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Строкой);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Кодировка);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Размер);
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Таймаут);
|
||||
|
||||
Соединение = ОткрытьСоединение(Адрес, SSL);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Соединение) Тогда
|
||||
ВызватьИсключение "Не удалось создать Соединение";
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = ПолучитьДанные(Соединение, Таймаут, Размер);
|
||||
|
||||
Если Строкой Тогда
|
||||
Сообщение = ПолучитьСтрокуИзДвоичныхДанных(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Сообщение;
|
||||
|
||||
Если Строкой Тогда
|
||||
Сообщение = ПолучитьСтрокуИзДвоичныхДанных(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗакрытьСоединение(Соединение);
|
||||
|
||||
Возврат Сообщение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
75
src/ru/cli/data/Classes/internal/Classes/tcp.os
Normal file
75
src/ru/cli/data/Classes/internal/Classes/tcp.os
Normal file
@ -0,0 +1,75 @@
|
||||
Функция ПолучитьСостав() Экспорт
|
||||
|
||||
ТаблицаСостава = Новый ТаблицаЗначений();
|
||||
ТаблицаСостава.Колонки.Добавить("Библиотека");
|
||||
ТаблицаСостава.Колонки.Добавить("Модуль");
|
||||
ТаблицаСостава.Колонки.Добавить("Метод");
|
||||
ТаблицаСостава.Колонки.Добавить("МетодПоиска");
|
||||
ТаблицаСостава.Колонки.Добавить("Параметр");
|
||||
ТаблицаСостава.Колонки.Добавить("Описание");
|
||||
ТаблицаСостава.Колонки.Добавить("ОписаниеМетода");
|
||||
ТаблицаСостава.Колонки.Добавить("Область");
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--address";
|
||||
НоваяСтрока.Описание = "Адрес и порт для подключения";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
НоваяСтрока.ОписаниеМетода = "Создает соединение и читает данные до конца или по ограничениям";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--ssl";
|
||||
НоваяСтрока.Описание = "Признак использования защищенного соединения (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--timeout";
|
||||
НоваяСтрока.Описание = "Время чтения данных (сек). 0 > до конца сообщения (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--size";
|
||||
НоваяСтрока.Описание = "Максимальный размер данных. 0 > без ограничений (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--string";
|
||||
НоваяСтрока.Описание = "Истина > возвращает строку, Ложь > двоичные данные (необяз. по ум. - Да)";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "tcp";
|
||||
НоваяСтрока.Модуль = "OPI_TCP";
|
||||
НоваяСтрока.Метод = "ПодключитьсяИПолучитьДанные";
|
||||
НоваяСтрока.МетодПоиска = "ПОДКЛЮЧИТЬСЯИПОЛУЧИТЬДАННЫЕ";
|
||||
НоваяСтрока.Параметр = "--enc";
|
||||
НоваяСтрока.Описание = "Кодировка получаемых данных (необяз. по ум. - UTF-8)";
|
||||
НоваяСтрока.Область = "Tcp клиент";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
@ -21,6 +21,7 @@
|
||||
СоответствиеКомандМодулей.Вставить("ozon", "OPI_Ozon");
|
||||
СоответствиеКомандМодулей.Вставить("s3", "OPI_S3");
|
||||
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
|
||||
СоответствиеКомандМодулей.Вставить("tcp", "OPI_TCP");
|
||||
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
|
||||
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
|
||||
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
|
||||
|
Loading…
x
Reference in New Issue
Block a user