Metoda PublishMessages służy do wysyłania wiadomości do serwera AMQP.
Serwery AMQP automatycznie wiążą kolejki z wymianą „direct" używając nazwy kolejki jako klucza routingu. Umożliwia to wysłanie wiadomości do konkretnej kolejki bez konieczności deklarowania wiązania (wystarczy wywołać metodę PublishMessage, przekazując pusty ciąg jako argument Exchange i nazwę kolejki jako RoutingKey).
Publikowanie wiadomości
Metoda ma następujące argumenty:
- ChannelName: nazwa kanału (musi być otwarty przed wywołaniem tej metody).
- ExchangeName: nazwa wymiany — nie może być dłuższa niż 255 znaków i nie może zaczynać się od „amq." (chyba że parametr passive jest true).
- RoutingKey: nazwa klucza routingu wiązania.
- Mandatory: jeśli true i wiadomość nie może być przekierowana do żadnej kolejki, serwer zwraca wiadomość i wywoływane jest zdarzenie OnAMQPBasicReturn.
- Immediate: jeśli true i wiadomość nie może być przekierowana do żadnej kolejki, serwer zwraca wiadomość i wywoływane jest zdarzenie 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;
