Method RequestAsync
RequestAsync<TRequest, TReply>(INatsConnection, in NatsMsg<TRequest>, INatsSerialize<TRequest>?, INatsDeserialize<TReply>?, NatsPubOpts?, NatsSubOpts?, CancellationToken)
Request and receive a single reply from a responder.
public static ValueTask<NatsMsg<TReply>> RequestAsync<TRequest, TReply>(this INatsConnection nats, in NatsMsg<TRequest> msg, INatsSerialize<TRequest>? requestSerializer = null, INatsDeserialize<TReply>? replySerializer = null, NatsPubOpts? requestOpts = null, NatsSubOpts? replyOpts = null, CancellationToken cancellationToken = default)
Parameters
natsINatsConnectionNATS connection
msgNatsMsg<TRequest>Message to be sent as request
requestSerializerINatsSerialize<TRequest>Serializer to use for the request message type.
replySerializerINatsDeserialize<TReply>Serializer to use for the reply message type.
requestOptsNatsPubOptsRequest publish options
replyOptsNatsSubOptsReply handler subscription options
cancellationTokenCancellationTokenCancel this request
Returns
- ValueTask<NatsMsg<TReply>>
Returns the NatsMsg<T> received from the responder as reply.
Type Parameters
TRequestRequest type
TReplyReply type
Remarks
Response can be (null) or one NatsMsg<T>. Reply option's max messages will be set to 1. if reply option's timeout is not defined then it will be set to NatsOpts.RequestTimeout.
Exceptions
- OperationCanceledException
Raised when cancellation token is used