일곱 개의 클라이언트 컴포넌트가 MQTT 3.1.1과 5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka 와이어 프로토콜, 그리고 STOMP 1.0부터 1.2까지를 구사하고, RabbitMQ와 ActiveMQ용 브로커 방언도 제공해요. 모든 프레임을 라이브러리 안에서 Object Pascal로 파싱하고 작성하기 때문에 librdkafka도, Paho도, Qpid도, 함께 배포할 DLL도 없어요. 일곱 컴포넌트 모두 하나의 TsgcTCPClient 위에서 동작하고, 평문으로 열거나 TLS로 감쌀 수 있어요.
폼에 프로토콜 컴포넌트를 올리고, Client 속성에 TsgcTCPClient를 할당하고, 이벤트를 연결한 다음, 해당 프로토콜 고유의 동사를 호출하면 돼요. 일곱 컴포넌트 모두 이름 규칙이 일관되어서 하나를 익히면 나머지는 대부분 저절로 따라와요.
MQTT 3.1.1 & 5.0
발행, 구독, 그리고 QoS 메커니즘 전체
TsgcWSPClient_MQTT는 MQTTVersion 속성 하나로 두 프로토콜 버전을 모두 다뤄요. QoS 0, 1, 2의 PUBACK, PUBREC, PUBREL, PUBCOMP 교환은 숨겨지지 않고 이벤트로 노출되며, 보존 메시지, Last Will and Testament, 와일드카드 구독, 재개 가능한 세션도 지원해요. 버전 5에서는 이유 코드, 사용자 속성, 토픽 별칭, 공유 구독, AUTH 왕복이 더해져요.
TsgcWSPClient_AMQP는 RabbitMQ의 기반이 된 프로토콜인 AMQP 0.9.1을 구사해요. 채널, 익스체인지와 큐 선언, 바인딩, 컨슈머, 발행자 확인 응답, prefetch QoS, 트랜잭션을 다뤄요. TsgcWSPClient_AMQP1은 Azure Service Bus와 Event Hubs 뒤에 있는 OASIS 표준인 AMQP 1.0을 구사해요. 컨테이너, 세션, 송신 및 수신 링크, 크레딧 기반 흐름 제어, SASL, Claims-Based Security 헬퍼를 제공해요. 와이어 포맷도 객체 모델도 다르기 때문에 각각 별도의 컴포넌트로 제공돼요.
TsgcWSPClient_Kafka는 v2 레코드 배치 포맷을 포함해 Kafka 와이어 프로토콜을 TCP 위에서 직접 구사해요. 원하는 acks 수준과 gzip 압축으로 프로듀스하고, 코디네이터 검색, 조인, 동기화, 하트비트, 리밸런스를 알아서 처리해 주는 그룹으로 컨슘하거나, 오프셋으로 파티션을 읽을 수 있어요.
TsgcWSPClient_STOMP는 SEND, SUBSCRIBE, UNSUBSCRIBE, ACK, NACK, 수신 확인, 양방향 하트비트, 그리고 BEGIN, COMMIT, ABORT 트랜잭션 프레임을 처리해요. 두 개의 하위 컴포넌트는 브로커의 목적지 규칙을 이름 있는 메서드로 바꿔 주는데, 하나는 RabbitMQ용, 하나는 ActiveMQ용이에요.
Object Pascal에서도 C++ Builder에서도 똑같은 모양이고, 나머지 세 컴포넌트도 같은 모양이에요. 전체 기능 매트릭스 →
구매 전에
먼저 알아 두면 좋은 두 가지
sgcMQ가 여러분에게 필요로 하는 것과 바이트가 브로커에 도달하는 방식이에요. 두 답 모두 짧고, 깨알 같은 약관이 아니라 바로 이 페이지에 있어요.
네이티브 브로커 리스너
protocol component TCP TLS
MQTT 3.1.1 / 5.0 TsgcWSPClient_MQTT18838883
AMQP 0.9.1 TsgcWSPClient_AMQP56725671
AMQP 1.0 TsgcWSPClient_AMQP156725671
Apache Kafka TsgcWSPClient_Kafka9092*
STOMP TsgcWSPClient_STOMP61613*
STOMP, RabbitMQ TsgcWSPClient_STOMP_RabbitMQ6161361614
STOMP, ActiveMQ TsgcWSPClient_STOMP_ActiveMQ6161361612* whatever the broker's own encrypted listener is configured as.
These are the conventional defaults. The carrier's Port takes
whatever your deployment actually listens on.
sgcMQ는 단독 제품이에요
컴포넌트에 필요한 모든 것이 sgcMQ 안에 들어 있어요. sgcWebSockets Core 런타임, TsgcTCPClient 캐리어, TLS 계층, JSON 헬퍼까지요. 설치 프로그램 하나에 전체 소스 코드가 함께 담겨 있어요.
평문 TCP와 TLS, 오직 그것만
이 패키지의 모든 프로토콜은 평문으로 열거나 TLS로 감싼 원시 소켓 위에서 동작해요. 여기에 나열된 네이티브 브로커 포트가 바로 그 대상이고, MQTT, AMQP, Kafka, STOMP가 일반적으로 배포되는 방식이에요. 프로토콜을 WebSocket 위에서 실행하려면, 예를 들어 MQTT over WebSocket이나 Web-STOMP라면 WebSocket 클라이언트가 필요한데, 이는 sgcWebSockets와 함께 제공돼요. 선택하기 전에 브로커가 어떤 전송을 노출하는지 확인해 보세요.
Delphi와 C++ Builder
sgcMQ는 Delphi 7부터 RAD Studio 13까지, 그리고 C++ Builder를 여섯 개 플랫폼 모두에서 지원해요. 이 패키지에는 .NET 빌드가 없어요. .NET에서 메시징이 필요하다면 sgcWebSockets에 들어 있어요.
배관 작업은 캐리어가 해요
TLSOptions.IOHandler로 크로스플랫폼 빌드에는 OpenSSL을, Windows에서는 SChannel을 선택하고, WatchDog가 끊어진 연결을 다시 이어 주며, HTTP CONNECT 프록시 통과와 IPv6는 별도 설정이 필요 없어요. 한 번만 설정하면 그 위의 모든 프로토콜이 그대로 물려받아요.
sgcMQ는 벤더 SDK를 감싸는 대신 공개된 프로토콜을 직접 구현하기 때문에 브로커는 여러분이 선택하면 돼요. RabbitMQ, Apache Kafka, Eclipse Mosquitto, HiveMQ, EMQX, Apache ActiveMQ, Azure Service Bus와 Event Hubs, AWS IoT Core 모두 가능해요. 브로커를 바꾸는 데 필요한 건 호스트, 포트, 자격 증명뿐이에요.
생태계
아홉 개의 라이브러리, 하나의 도구 상자
sgcMQ는 Delphi, C++ Builder, .NET을 위한 아홉 개의 eSeGeCe 컴포넌트 라이브러리 중 하나예요. 같은 규칙을 공유하고, 전체 소스와 함께 제공되며, 로열티 없이 배포할 수 있어요.
sgcMQ
Delphi와 C++ Builder를 위한 MQTT, AMQP 0.9.1과 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트예요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.