STOMP RabbitMQ İstemci Bileşeni: sgcMQ | eSeGeCe

STOMP RabbitMQ İstemcisi

TsgcWSPClient_STOMP_RabbitMQ, RabbitMQ'nun hedef kuralları yerleşik olarak gelen STOMP istemcisidir. RabbitMQ, anlamlarını hedef dizesinde kodlar; bu nedenle /queue/, /topic/, /exchange/, /amq/queue/ ve /temp-queue/ ifadelerinin her biri farklı bir anlam taşır. Bu bileşen bunları adlandırılmış yöntemlere dönüştürür ve türü belirli başlık kayıtları, ham dize ayrıştırmasının yerini alır.

TsgcWSPClient_STOMP_RabbitMQ

Genel STOMP istemcisindeki her şey burada da kullanılabilir. Eklenenler; hedef yardımcıları ve türü belirli başlık nesneleriyle birlikte RabbitMQ adını taşıyan olaylardır.

Bileşen sınıfı

TsgcWSPClient_STOMP_RabbitMQ

Spesifikasyon

STOMP 1.0, 1.1 ve 1.2

Taşıma

TCP (61613) veya TLS (61614)

Diller

Delphi, C++ Builder

Taşıma: düz TCP ve TLS. sgcMQ, RabbitMQ STOMP eklentisiyle düz TCP ve TLS üzerinden konuşur. RabbitMQ'nun Web-STOMP eklentisi bir WebSocket uç noktasıdır; dolayısıyla ona ulaşmak, WebSocket istemcisini sağlayan bir sgcWebSockets paketi gerektirir.

Bir kuyruğa abone olun, bir exchange'e yayın yapın

Bu örnek, RabbitMQ STOMP eklentisini kendi yerel TCP portu olan 61613 üzerinde kullanır. Şifreli bir bağlantı için taşıyıcıda TLS'i açın ve 61614 portunu kullanın.

uses
  sgcTCP_Client_WS, sgcWebSocket_Classes, sgcWebSocket_Protocols,
  sgcWebSocket_Protocol_STOMP_Broker_Client,
  sgcWebSocket_Protocol_STOMP_RabbitMQ_Client;

var
  TCPClient: TsgcTCPClient;
  STOMP: TsgcWSPClient_STOMP_RabbitMQ;
begin
  TCPClient := TsgcTCPClient.Create(nil);
  TCPClient.Host := 'rabbit.example.com';
  TCPClient.Port := 61613;

  STOMP := TsgcWSPClient_STOMP_RabbitMQ.Create(nil);
  STOMP.Client := TCPClient;
  STOMP.Authentication.Enabled  := True;
  STOMP.Authentication.UserName := 'guest';
  STOMP.Authentication.Password := 'guest';

  STOMP.OnRabbitMQConnected := RabbitMQConnected;
  STOMP.OnRabbitMQMessage   := RabbitMQMessage;

  TCPClient.Active := True;
end;

procedure TForm1.RabbitMQConnected(Connection: TsgcWSConnection;
  Headers: TsgcWSRabbitMQSTOMPHeadersConnected);
begin
  // /queue/orders, durable
  STOMP.SubscribeQueue('orders');

  // /exchange/orders with routing pattern 'create'
  STOMP.SubscribeExchange('orders', 'create');
  STOMP.PublishExchange('orders', 'create', '{"id":42}');
end;

procedure TForm1.RabbitMQMessage(Connection: TsgcWSConnection;
  MessageText: string; Headers: TsgcWSRabbitMQSTOMPHeadersMessage;
  Subscription: TsgcWSBrokerSTOMPSubscriptionItem);
begin
  Memo1.Lines.Add(Headers.Destination + ': ' + MessageText);
end;
// include: sgcTCP_Client_WS.hpp, sgcWebSocket_Protocols.hpp,
// sgcWebSocket_Protocol_STOMP_RabbitMQ_Client.hpp

TsgcTCPClient *TCPClient = new TsgcTCPClient(this);
TCPClient->Host = "rabbit.example.com";
TCPClient->Port = 61613;

TsgcWSPClient_STOMP_RabbitMQ *STOMP =
  new TsgcWSPClient_STOMP_RabbitMQ(this);
STOMP->Client = TCPClient;
STOMP->Authentication->Enabled  = true;
STOMP->Authentication->UserName = "guest";
STOMP->Authentication->Password = "guest";

STOMP->OnRabbitMQConnected = RabbitMQConnected;
STOMP->OnRabbitMQMessage   = RabbitMQMessage;

TCPClient->Active = true;

// In the OnRabbitMQConnected handler:
STOMP->SubscribeQueue("orders");
STOMP->SubscribeExchange("orders", "create");
STOMP->PublishExchange("orders", "create", "{\"id\":42}");

Temel özellikler & yöntemler

Her yardımcı düz adı alır ve RabbitMQ hedef dizesini bileşen sizin için oluşturur.

Kuyruklar

SubscribeQueue, PublishQueue ve UnSubscribeQueue, RabbitMQ'nun /queue/ hedefleriyle çalışır; kalıcılık, otomatik silme ve özel kullanım bayrakları argüman olarak verilir.

Konular

SubscribeTopic, PublishTopic ve UnSubscribeTopic, RabbitMQ'nun amq.topic exchange'i üzerinden yönlendiren /topic/ hedefini kullanır.

Exchange'ler

SubscribeExchange(name, pattern) ve PublishExchange(name, routingKey, text), bir bağlama deseninin neyi alacağınızı seçtiği /exchange/ hedeflerine yönelir.

Dış kuyruklar

SubscribeQueueOutside ve PublishQueueOutside, başka bir yerde bildirilmiş ve istemci tarafından yeniden bildirilmemesi gereken kuyruklar için /amq/queue/ ile eşleşir.

Geçici kuyruklar

SubscribeTemporaryQueue(queue, replyTo) ve PublishTemporaryQueue, RabbitMQ'nun /temp-queue/ istek/yanıt desenini kısa ömürlü bir yanıt hedefiyle uygular.

Genel hedefler

SubscribeEx, PublishEx ve UnSubscribeEx, adlandırılmış yardımcıların kapsamadığı bir şeye ihtiyacınız olduğunda ham hedef dizesini alır.

Türü belirli başlıklar

OnRabbitMQMessage, bir TsgcWSRabbitMQSTOMPHeadersMessage ile eşleşen abonelik öğesini teslim eder; böylece hedef, mesaj kimliği ve onay modu alt dizeler değil, birer özelliktir.

Özel başlıklar

Her yayınlama yardımcısı, ek başlıklardan oluşan bir TStrings kabul eder; mesaj önceliği, son kullanma ya da kalıcılık gibi RabbitMQ uzantılarını böyle ayarlarsınız.

Bağlantı

Client, Authentication, HeartBeat, Versions ve Options, genel STOMP istemcisinde olduğu gibi davranır.

Keşfetmeye devam edin

Çevrimiçi yardımTam API referansı ve kullanım kılavuzu.
Genel STOMP İstemcisiStandart çerçeve kümesini sunan temel bileşen.
AMQP 0.9.1 İstemcisiSTOMP bir zorunluluk değilse, RabbitMQ'nun yerel protokolü.
Ücretsiz Deneme Sürümünü İndirinYerel bir RabbitMQ konteynerine karşı çalıştırın.
FiyatlandırmaTam kaynak kodlu Single, Team ve Site lisansları.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi ya da C++ Builder'dan STOMP üzerinden RabbitMQ ile konuşun.