STOMP ActiveMQ İstemci Bileşeni: sgcMQ | eSeGeCe

STOMP ActiveMQ İstemcisi

TsgcWSPClient_STOMP_ActiveMQ, Apache ActiveMQ için ayarlanmış STOMP istemcisidir. ActiveMQ'nun hedef adlandırmasının üzerine kuyruk ve konu yardımcıları, her olayda türü belirli başlık nesneleri ve kalıcı aboneliklerin ihtiyaç duyduğu broker'a özgü ayarlar için bir ActiveMQ_Options özelliği ekler.

TsgcWSPClient_STOMP_ActiveMQ

Genel STOMP istemcisindeki her şey burada da geçerlidir. Eklenenler; hedef yardımcıları, ActiveMQ adını taşıyan olaylar ve broker seçenekleridir.

Bileşen sınıfı

TsgcWSPClient_STOMP_ActiveMQ

Spesifikasyon

STOMP 1.0, 1.1 ve 1.2

Taşıma

TCP (61613) veya TLS (61612)

Diller

Delphi, C++ Builder

Taşıma: düz TCP ve TLS. sgcMQ, ActiveMQ ile düz TCP ve TLS üzerinden konuşur. ActiveMQ'nun WebSocket üzerinden STOMP bağlayıcısı 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, ona yayın yapın

Bu örnek, ActiveMQ'nun yerel STOMP portu olan 61613'ü kullanır. Şifreli bir bağlantı için taşıyıcıda TLS'i açın ve broker'ın 61612 portundaki stomp+ssl bağlayıcısını kullanın.

uses
  sgcTCP_Client_WS, sgcWebSocket_Classes, sgcWebSocket_Protocols,
  sgcWebSocket_Protocol_STOMP_Broker_Client,
  sgcWebSocket_Protocol_STOMP_ActiveMQ_Client;

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

  STOMP := TsgcWSPClient_STOMP_ActiveMQ.Create(nil);
  STOMP.Client := TCPClient;
  STOMP.ActiveMQ_Options.ClientId := 'delphi-consumer-1';
  STOMP.Authentication.Enabled  := True;
  STOMP.Authentication.UserName := 'admin';
  STOMP.Authentication.Password := 'admin';

  STOMP.OnActiveMQConnected := ActiveMQConnected;
  STOMP.OnActiveMQMessage   := ActiveMQMessage;

  TCPClient.Active := True;
end;

procedure TForm1.ActiveMQConnected(Connection: TsgcWSConnection;
  Headers: TsgcWSActiveMQSTOMPHeadersConnected);
begin
  STOMP.SubscribeQueue('orders');
  STOMP.PublishQueue('orders', '{"id":42}');
end;

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

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

TsgcWSPClient_STOMP_ActiveMQ *STOMP =
  new TsgcWSPClient_STOMP_ActiveMQ(this);
STOMP->Client = TCPClient;
STOMP->ActiveMQ_Options->ClientId = "cbuilder-consumer-1";
STOMP->Authentication->Enabled  = true;
STOMP->Authentication->UserName = "admin";
STOMP->Authentication->Password = "admin";

STOMP->OnActiveMQConnected = ActiveMQConnected;
STOMP->OnActiveMQMessage   = ActiveMQMessage;

TCPClient->Active = true;

// In the OnActiveMQConnected handler:
STOMP->SubscribeQueue("orders");
STOMP->PublishQueue("orders", "{\"id\":42}");

Temel özellikler & yöntemler

En sık başvuracağınız üyeler.

Kuyruklar

SubscribeQueue, PublishQueue ve UnSubscribeQueue, düz kuyruk adını alır ve /queue/ hedefini oluşturur; kalıcılık, özel kullanım ve onay modu argümanlarıyla birlikte.

Konular

SubscribeTopic, PublishTopic ve UnSubscribeTopic, aynısını /topic/ hedefleri için yapar; kalıcı aboneliklerin en çok önem taşıdığı yer de burasıdır.

Genel hedefler

SubscribeEx, PublishEx ve UnSubscribeEx, adlandırılmış yardımcıların kapsamadığı her şey için ham bir hedef dizesi alır.

Broker seçenekleri

ActiveMQ_Options, broker'ın geri dönen kalıcı bir aboneyi tanımak için kullandığı ClientId dahil olmak üzere ActiveMQ'ya özgü ayarları taşır.

Kalıcı abonelikler

Abone olma yardımcıları bir Durable bayrağı alır; böylece bir konu abonesi bağlantısını kesebilir ve broker'ın kendisi için sakladığı mesajları daha sonra toplayabilir.

Türü belirli başlıklar

OnActiveMQMessage, eşleşen abonelik öğesiyle birlikte bir TsgcWSActiveMQSTOMPHeadersMessage teslim eder; böylece hedef, mesaj kimliği ve onay modu birer özelliktir.

Onaylama

Abone olurken bir onay modu geçirin, ardından mesaj kimliğiyle ACK ya da NACK çağırın. ackAuto modunda broker, bir mesajı gönderilir gönderilmez teslim edilmiş sayar.

Mesaj seçenekleri

Her yayınlama yardımcısı; bir içerik türü, isteğe bağlı bir işlem adı ve öncelik, kalıcılık ve son kullanma gibi ActiveMQ başlıkları için bir mesaj seçenekleri nesnesi kabul eder.

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 1.0 İstemcisiActiveMQ Artemis, AMQP 1.0 da konuşur.
Ücretsiz Deneme Sürümünü İndirinYerel bir ActiveMQ broker'ına 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 ActiveMQ ile konuşun.