Особенности работы объекта WebSocketClient_Async
- Объект работает в асинхронном режиме. То есть после вызова любого метода объект сразу возвращает управление основному потоку 1С. Далее объект продолжает выполнение метода в фоновом потоке. Таким образом, объект не зависит от длительных операций основного потока (таких, как формирование отчетов и т.п.).
- Для сигнализации о возникшем событии используется ВнешнееСобытие. Объект генерирует следующие события: "Open", "Close", "TextMessage", "BinaryMessage", "Ping", "Pong", "Error".
- События "TextMessage" и "BinaryMessage" сигнализируют о входяшем сообщение. Само сообщение помещяется в очередь, получить его можно с помощию метода ПолучитьСообщение().
- В 1С может быть одновременно создано несколько объектов WebSocketClient_Async. Чтобы понять, какому объекту адресовано событие, используется идентификатор <ObjectID>, который передается первым параметром во ВнешнемСобытии.
- Объект автоматически отправляет пакет Pong в ответ на получение пакета Ping. Дополнительно объект генерирует событие "Ping", которое не обязательно обрабатывать.
Свойства объекта
ObjectID – (чтение/запись)
Тип: Строка
Описание:
Идентификатор, позволяющий отличать один объект компоненты от другого. По умолчанию устанавливается строкой вида WebSocketClient_NNNNN, где NNNNN - случайное число
Методы объекта
Открыть (Open)
Синтаксис:
Открыть(<АдресСервера>)
Параметры:
<АдресСервера> (обязательный)
Тип: Строка
URL-адрес сервера в формате ws://host:port/ или wss://host:port/
Описание:
Устанавливает соединение с сервером. При успешном соединении вызывает событие "Open". Если соединение не удалось установить, вызывает событие "Error"
Закрыть (Close)
Синтаксис: Закрыть(<Код>, <Причина>)
Параметры:
<Код> (необязательный)
Тип: Число
Код закрытия WebSocket, по умолчанию: 1000
<Причина>(необязательный)
Тип: Строка
Причина закрытия WebSocket, по умолчанию: пустая строка
Описание:
Разрывает соединение с сервером.
ОтправитьСообщение (SendMessage)
Синтаксис:
ОтправитьСообщение(<Данные>,<МаксимальныйРазмерФрейма>)
Параметры:
<Данные> (обязательный)
Тип: Строка или ДвоичныеДанные
Данные для отправки
<МаксимальныйРазмерФрейма> (необязательный)
Тип: Число
Максимальный размер фрейма. Если размер данных превышает этот размер, то сообщение отправляется фрагментами.
Примечание: Не следует отправлять данные ранее, чем возникло событие "Open".
ПолучитьСообщение (GetMessage)
Синтаксис:
ПолучитьСообщение()
Возвращаемое значение:
Тип: Строка, ДвоичныеДанные или Неопределено
Возвращает полученное сообщение. Если полученных сообщений нет, то возвращает Неопределено.
ДобавитьHttpЗаголовок (AddHttpHeader)
Синтаксис:
ДобавитьHttpЗаголовок(Имя, Значение)
Параметры:
<Имя> (обязательный)
Тип: Строка
Имя заголовка
<Значение> (обязательный)
Тип: Строка
Значение заголовка
Описание:
Позволяет добавлять дополнительные http-заголовоки, которые будут использоваться при установке соединения.
Ping
Синтаксис:
Ping(<Текст>)
Параметры:
<Текст> (необязательный)
Тип: Строка
Текст для отправки
Описание:
Отправляет на сервер сообщение Ping. В ответ сервер должен вернуть сообщение Pong.
Версия (Version)
Синтаксис:
Версия()
Возвращаемое значение:
Тип: Строка
Описание:
Позволяет получить версию компоненты.
Внешние события
Объект WebSocketClient_Async генерирует внешние события с параметрами:
Источник: <ObjectID>
Событие:
- "Open"
- "Close"
- "TextMessage"
- "BinaryMessage"
- "Ping"
- "Pong"
- "Error"
Данные: Данные или дополнительное описание события (например, описание ошибки).