Получить сообщение 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
}
}