TsgcWSPClient_AMQP › Events › OnAMQPBasicDeliver
Fires when the broker pushes a message to an active consumer (basic.deliver).
property OnAMQPBasicDeliver: TsgcAMQPBasicDeliverEvent;
// TsgcAMQPBasicDeliverEvent = procedure(Sender: TObject; const aChannel: string; const aDeliver: TsgcAMQPFramePayload_Method_BasicDeliver; const aContent: TsgcAMQPMessageContent) of object
—
Main entry point for receiving messages when consuming. aDeliver contains the consumer tag, delivery tag, redelivered flag, exchange and routing key used to publish the message. aContent provides the AMQP content header (properties such as ContentType, Headers, DeliveryMode...) and the payload in aContent.Body.AsString / aContent.Body.AsStream. Use aDeliver.DeliveryTag together with BasicAck, BasicNack or BasicReject to control redelivery. The handler runs inside the channel reader thread, so marshal to the UI thread when needed.
procedure TForm1.oAMQPAMQPBasicDeliver(Sender: TObject; const aChannel: string;
const aDeliver: TsgcAMQPFramePayload_Method_BasicDeliver;
const aContent: TsgcAMQPMessageContent);
begin
DoLog(Format('#AMQP Deliver [%s] tag=%d key=%s: %s',
[aChannel, aDeliver.DeliveryTag, aDeliver.RoutingKey,
aContent.Body.AsString]));
oAMQP.BasicAck(aChannel, aDeliver.DeliveryTag);
end;