Перейти к содержанию

receive

receive(driver:filter:assert:timeout:)

public func receive(driver: TransportDriver, filter: TransportFilter, assert: TransportFilter?, timeout: UInt?) async throws -> TransportPayload

Получение определенного сообщения

Этот метод ожидает, пока не придет подходящее сообщение (определяется параметром filter) и возвращает данные сообщения. Если указан фильтр assert, сообщение также с ним сравнивается и возвращается если не прошло подтверждение. Такое поведение может быть полезно при внезапной отписке, получении некорректных сообщений и подобных ошибочных сценариях.

Параметры

Имя Описание
driver TransportDriver имплементация
filter фильтр входящего сообщения
assert (необязательный) вторичный фильтр входящего сообщения, для работы с сообщениями, приходящими в неправильном порядке
timeout (необязательный) максимальная задержка ожидания (в миллисекундах), после которой получатель автоматически отписывается

Возвращает

TransportPayload

полученный payload сообщения (TransportPayload) (как мета, так и данные)