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

Получить данные соединения

Получает данные из буфера конкретного соединения по ID

Функция ПолучитьДанныеСоединения(Знач ОбъектСервера, Знач IDСоединения, Знач Таймаут = 1000) Экспорт

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

Соответствие Из КлючИЗначение - Результат выполнения

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

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

Пример использования для 1С:Предприятие/OneScript
// Запуск сервера
ПортЗапуска = 9894;
ОбъектСервера = OPI_WebSocket.ЗапуститьСервер(ПортЗапуска);

// Подключение к серверу при помощи клиента
АдресПодключения = "ws://127.0.0.1:9894";
ОбъектКлиента = OPI_WebSocket.ОткрытьСоединение(АдресПодключения);

Если Не OPI_WebSocket.ЭтоОбъектКлиента(ОбъектКлиента) Тогда
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
КонецЕсли;

// Получение списка активных соединений на сервере
СписокСоединений = OPI_WebSocket.ПолучитьСписокСоединений(ОбъектСервера);

Если Не СписокСоединений["result"] Тогда
ВызватьИсключение OPI_Инструменты.JSONСтрокой(СписокСоединений);
КонецЕсли;

Если СписокСоединений["connections"].Количество() = 0 Тогда
ВызватьИсключение "Список соединений пуст";
Иначе
IDСоединения = СписокСоединений["connections"][0]["connectionId"];
КонецЕсли;

Для Н = 0 По 5 Цикл

// Отправка сообщения с клиента
ТекущееСообщение = СтрШаблон("Message no. %1", Н);
OPI_WebSocket.ОтправитьТекстовоеСообщение(ОбъектКлиента, ТекущееСообщение);

// Получение входящего сообщения на сервере по ID
Результат = OPI_WebSocket.ПолучитьДанныеСоединения(ОбъектСервера, IDСоединения, 5000);

КонецЦикла;
Результат
{
"address": "127.0.0.1:41032",
"connectionId": "dbb5f553-262a-47d3-b8d6-2e057360a9d1",
"isActive": true,
"message": "<Двоичные данные>",
"result": true
}