Перейти к основному содержимому

Получить сообщение GRPC

Получает очередное сообщение из потока

Функция ПолучитьСообщениеGRPC(Знач Соединение, Знач IDПотока, Знач ФорматПоУмолчанию = "") Экспорт

ПараметрCLI опцияТипОбяз.Назначение
Соединение-ПроизвольныйОбъект соединения
IDПотока-СтрокаИдентификатор потока
ФорматПоУмолчанию-СтрокаОжидаемый формат данных, если сервер не вернул output_format
Возвращаемое значение

Соответствие Из КлючИЗначение - Результат обработки

подсказка

ФорматПоУмолчанию необходим при потоковом получении, так как сервер не возвращает информацию о формате после первого ответа

Предупреждение

NOCLI: данный метод недоступен для использования в CLI версии

Пример использования для 1С:Предприятие/OneScript
URL = "http://localhost:9101";
Логин = "bayselonarrend";
Пароль = "12we...";

Авторизация = Новый Структура(Логин, Пароль);

НастройкиСоединения = OPI_ClickHouse.ПолучитьНастройкиСоединенияGRPC(URL, Авторизация);
Соединение = OPI_ClickHouse.ОткрытьСоединениеGRPC(НастройкиСоединения);
Таймаут = 10000;

РезультатОткрытия = OPI_ClickHouse.ОткрытьПотокGRPC(Соединение, Таймаут);

Если Не РезультатОткрытия["result"] Тогда
ВызватьИсключение РезультатОткрытия["error"];
Иначе
IDПотока = РезультатОткрытия["streamId"];
КонецЕсли;

ТекстЗапроса = "SELECT number FROM system.numbers LIMIT 1";
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса, , , , "JSON");

Результат = OPI_ClickHouse.ОтправитьСообщениеGRPC(Соединение, IDПотока, Запрос);
OPI_ClickHouse.ЗавершитьОтправкуGRPC(Соединение, IDПотока);

Данные = "";

Если Результат["result"] Тогда

Пока Истина Цикл

Результат = OPI_ClickHouse.ПолучитьСообщениеGRPC(Соединение, IDПотока, "JSON");

Если Не Результат["result"] Тогда
Прервать;
КонецЕсли;

ЧастьТекста = Результат["message"]["output"];
Данные = Данные + ЧастьТекста;

КонецЦикла;

OPI_GRPC.ЗакрытьСоединение(Соединение);

Иначе
ВызватьИсключение Результат["error"];
КонецЕсли;

OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Данные);
Результат
{
"meta": [
{
"name": "number",
"type": "UInt64"
}
],
"data": [
{
"number": "0"
}
],
"rows": 1,
"statistics": {
"elapsed": 0.000748218,
"rows_read": 0,
"bytes_read": 0
}
}