Die Methode PublishMessages wird verwendet, um eine Nachricht an den AMQP-Server zu senden.
AMQP-Server binden die Queues automatisch an einen "direct"-Exchange, wobei der Queue-Name als Routing-Schlüssel dient. So kannst du eine Nachricht an eine bestimmte Queue senden, ohne ein Binding deklarieren zu müssen (du rufst einfach die Methode PublishMessage auf und übergibst das Exchange-Argument als leeren Wert sowie den Queue-Namen im RoutingKey-Argument).
Nachrichten veröffentlichen
Die Methode hat folgende Argumente:
- ChannelName: der Name des Kanals (muss vor dem Aufruf dieser Methode geöffnet sein).
- ExchangeName: der Name des Exchanges, darf nicht länger als 255 Zeichen sein und nicht mit "amq." beginnen (außer wenn der passive-Parameter true ist).
- RoutingKey: der Name des Routing-Schlüssels des Bindings.
- Mandatory: wenn true und die Nachricht nicht an eine Queue geroutet werden kann, wird die Nachricht vom Server zurückgegeben und das Ereignis OnAMQPBasicReturn ausgelöst.
- Immediate: wenn true und die Nachricht nicht an eine Queue geroutet werden kann, wird die Nachricht vom Server zurückgegeben und das Ereignis OnAMQPBasicReturn ausgelöst.
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;
