O método PublishMessages é usado para enviar uma mensagem para o servidor AMQP.
Os servidores AMQP vinculam automaticamente como filas para "direct" exchange usando o nome da fila como routing key. This permite enviar uma mensagem para uma fila específica sem um necessidade de declarar um binding (just calling PublishMessage method e pasing o Exchange argumento como valor vazio e o name do queue no RoutingKey argument).
Publicar mensagens
O método tem os seguintes argumentos:
- ChannelName: it's o name do channel (deve ser abrir before call this method).
- ExchangeName: it's o name do exchange, deve ser no longer de 255 characters e not begin com "amq." (exceto se o parâmetro passive para true).
- RoutingKey: it's o nome da routing key do binding.
- Mandatory: if true e um mensagem não pode ser roteada para any queue, um mensagem is returned por o servidor, o evento OnAMQPBasicReturn é disparado.
- Immediate: if true e um mensagem não pode ser roteada para any queue, um mensagem is returned por o servidor, o evento OnAMQPBasicReturn é disparado.
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;
