Il metodo PublishMessages serve a inviare un messaggio al server AMQP.
I server AMQP associano automaticamente le code all'exchange "direct" usando il nome della coda come routing key. Questo permette di inviare un messaggio a una coda specifica senza dover dichiarare un binding (basta chiamare il metodo PublishMessage e passare l'argomento Exchange come valore vuoto e il nome della coda nell'argomento RoutingKey).
Pubblicare messaggi
Il metodo ha i seguenti argomenti:
- ChannelName: è il nome del canale (deve essere aperto prima di chiamare questo metodo).
- ExchangeName: è il nome dell'exchange, non deve superare i 255 caratteri e non iniziare con "amq." (eccetto se il parametro passive è true).
- RoutingKey: è il nome della routing key del binding.
- Mandatory: se true e il messaggio non può essere instradato a nessuna coda, il messaggio viene restituito dal server e viene sollevato l'evento OnAMQPBasicReturn.
- Immediate: se true e il messaggio non può essere instradato a nessuna coda, il messaggio viene restituito dal server e viene sollevato l'evento OnAMQPBasicReturn.
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;
