De methode PublishMessages wordt gebruikt om een bericht naar de AMQP-server te sturen.
AMQP-servers koppelen queues automatisch aan de "direct"-exchange met de queuenaam als routing key. Hierdoor kun je een bericht naar een specifieke queue sturen zonder een binding te hoeven declareren (gewoon de methode PublishMessage aanroepen en het Exchange-argument leeg laten en de naam van de queue in het RoutingKey-argument doorgeven).
Berichten publiceren
De methode heeft de volgende argumenten:
- ChannelName: dit is de naam van het kanaal (moet geopend zijn voor deze methode wordt aangeroepen).
- ExchangeName: dit is de naam van de exchange, mag niet langer zijn dan 255 tekens en niet beginnen met "amq." (tenzij de passive-parameter true is).
- RoutingKey: dit is de naam van de routing key van de binding.
- Mandatory: als true en het bericht kan niet naar een queue worden gerouteerd, geeft de server het bericht terug en wordt de gebeurtenis OnAMQPBasicReturn aangeroepen.
- Immediate: als true en het bericht kan niet naar een queue worden gerouteerd, geeft de server het bericht terug en wordt de gebeurtenis OnAMQPBasicReturn aangeroepen.
AMQP.PublishMessage('channel_name', 'exchange_name', 'routing_key', 'Hello from sgcWebSockets!!!');
procedure OnAMQPBasicReturn(Sender: TObject; const aChannel: string; const aReturn: TsgcAMQPFramePayload_Method_BasicReturn; const aContent: TsgcAMQPMessageContent);
begin
DoLog('#AMQP_basic_return: ' + aChannel + ' ' + IntToStr(aReturn.ReplyCode) + ' ' + aReturn.ReplyText + ' ' + aContent.Body.AsString);
end;
