STOMP 프로토콜
상호 운용 가능한 메시징을 위한 Simple Text Oriented Messaging Protocol이에요. Delphi 애플리케이션에서 RabbitMQ, ActiveMQ 및 모든 STOMP 호환 브로커에 연결해요.
상호 운용 가능한 메시징을 위한 Simple Text Oriented Messaging Protocol이에요. Delphi 애플리케이션에서 RabbitMQ, ActiveMQ 및 모든 STOMP 호환 브로커에 연결해요.
STOMP은 서로 다른 메시지 브로커와 클라이언트 구현 간의 상호 운용성을 가능하게 하는 간단한 텍스트 기반 메시징 프로토콜이에요.
STOMP은 단순하고 구현하기 쉽도록 설계되었어요. 바이너리 프로토콜과 달리 STOMP은 사람이 읽을 수 있고 디버깅이 쉬운 텍스트 기반 프레임 형식을 사용해요. CONNECT, SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, BEGIN, COMMIT, ABORT, DISCONNECT의 작은 명령 집합을 정의해 일반적인 메시징 패턴을 모두 다뤄요. sgcWebSockets은 WebSocket 연결 위에서 STOMP 프로토콜을 구현해, 브라우저와 네이티브 클라이언트가 엔터프라이즈 메시지 브로커와 통신할 수 있게 해요.
깔끔한 텍스트 기반 프로토콜로 단순화된 엔터프라이즈 메시징이에요.
사람이 읽을 수 있는 프레임이라 디버깅과 개발이 간단해요. 각 프레임은 명령, 헤더, 선택적 본문으로 구성돼요.
RabbitMQ 및 ActiveMQ 메시지 브로커와 완전 호환되어 엔터프라이즈 메시징 인프라에 접근할 수 있어요.
명확한 시맨틱으로 연결 관리, 메시지 전송, 토픽 구독을 다루는 깔끔한 명령 집합이에요.
메시지가 성공적으로 수신 및 처리되었는지 확인하기 위해 브로커에 수신 확인을 요청하세요.
BEGIN, COMMIT, ABORT 명령으로 여러 SEND와 ACK 작업을 원자적 트랜잭션으로 묶어요.
끊어진 연결을 감지하고 지속적인 브로커 세션을 유지하기 위한 자동 keep-alive 메커니즘이에요.
STOMP이 간단하고 안정적인 통신을 제공하는 엔터프라이즈 메시징 시나리오예요.
Delphi 애플리케이션을 엔터프라이즈 메시지 큐에 연결해 시스템 간 안정적인 비동기 통신을 제공해요.
토픽 기반 메시징과 큐 패턴을 사용해 마이크로서비스 간의 느슨한 결합 통신을 가능하게 해요.
STOMP 메시지 브로커를 통해 발행된 이벤트에 컴포넌트가 반응하는 이벤트 기반 시스템을 구축해요.
공통 프로토콜을 통해 서로 다른 언어와 프레임워크로 작성된 애플리케이션 간 통신을 연결해요.
STOMP 브로커에 연결하고, 목적지를 구독하고, 메시지를 보내세요.
uses
sgcWebSocket_Client, sgcWebSocket_Types;
var
WSClient: TsgcWebSocketClient;
procedure TForm1.FormCreate(Sender: TObject);
begin
WSClient := TsgcWebSocketClient.Create(nil);
WSClient.Host := 'broker.example.com';
WSClient.Port := 15674;
WSClient.Specifications.RFC6455.Protocol := 'stomp';
// Configure STOMP protocol
WSClient.STOMP.Enabled := True;
WSClient.STOMP.Authentication.Username := 'guest';
WSClient.STOMP.Authentication.Password := 'guest';
WSClient.STOMP.VirtualHost := '/';
WSClient.STOMP.HeartBeat.Outgoing := 10000;
WSClient.STOMP.HeartBeat.Incoming := 10000;
// Set up event handlers
WSClient.OnSTOMPConnected := OnSTOMPConnected;
WSClient.OnSTOMPMessage := OnSTOMPMessage;
WSClient.OnSTOMPReceipt := OnSTOMPReceipt;
end;
procedure TForm1.ButtonConnectClick(Sender: TObject);
begin
WSClient.Active := True;
end;
procedure TForm1.OnSTOMPConnected(Sender: TObject);
begin
// Subscribe to a queue
WSClient.STOMP.Subscribe('/queue/orders');
end;
procedure TForm1.OnSTOMPMessage(Sender: TObject;
aDestination, aBody: string);
begin
// Process incoming messages
Memo1.Lines.Add(aDestination + ': ' + aBody);
end;
procedure TForm1.ButtonSendClick(Sender: TObject);
begin
// Send a message to a destination
WSClient.STOMP.Send('/queue/orders',
'{"orderId": 12345, "status": "new"}');
end;