TsgcWSPClient_AMQPEvents › OnAMQPBasicDeliver

OnAMQPBasicDeliver Event

Fires when the broker pushes a message to an active consumer (basic.deliver).

Syntax

property OnAMQPBasicDeliver: TsgcAMQPBasicDeliverEvent;
// TsgcAMQPBasicDeliverEvent = procedure(Sender: TObject; const aChannel: string; const aDeliver: TsgcAMQPFramePayload_Method_BasicDeliver; const aContent: TsgcAMQPMessageContent) of object

Default Value

Remarks

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.

Example

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;

Back to Events