TsgcWSPClient_MQTT › 메서드 › Publish
요청된 QoS 및 retain 플래그를 사용하여 topic에 메시지를 게시합니다.
function Publish(const aTopic, aText: String; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Type | 설명 |
|---|---|---|
aTopic | const String | 메시지가 게시되는 정규화된 topic 이름(와일드카드 없음)입니다. |
aText | const String | PUBLISH 패킷 본문으로 전송되는 UTF-8 페이로드입니다. |
aQoS | TmqttQoS | 전달 보장: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) 또는 mtqsExactlyOnce (2). 기본값은 mtqsAtMostOnce입니다. |
aRetain | Boolean | True인 경우 브로커는 메시지를 토픽의 유지된 값으로 저장하고 새 구독자에게 전달합니다. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | 선택적 MQTT 5.0 속성(Content Type, Response Topic, Message Expiry, User Properties). 생략하려면 nil을 전달하십시오. |
PUBLISH 패킷에 할당된 packet 식별자입니다. QoS 1 및 2의 경우 0이 아니며, QoS 0의 경우 0입니다. OnMQTTPubAck, OnMQTTPubRec, OnMQTTPubComp와 상관시키는 데 사용하십시오. (Word)
JSON 문서 및 기타 UTF-8 콘텐츠에 이상적인 텍스트 오버로드입니다. 호출은 패킷이 전송 계층에 전달되는 즉시 반환됩니다. QoS 1/2 승인은 비동기적으로 전달됩니다. Connect로 설정된 활성 MQTT 세션이 필요합니다.
MQTT.Publish('sensors/temp', '{"value":22.5}', mtqsAtLeastOnce, True);
function Publish(const aTopic: String; const aStream: TStream; aQoS: TmqttQoS = mtqsAtMostOnce; aRetain: Boolean = False; const aPublishProperties: TsgcWSMQTTPublish_Properties = nil) : Word;
| Name | Type | 설명 |
|---|---|---|
aTopic | const String | 바이너리 페이로드가 게시되는 정규화된 토픽 이름입니다. |
aStream | const TStream | 전체 내용이 PUBLISH 페이로드로 그대로 전송되는 소스 스트림입니다. Position은 구성 요소에 의해 저장되고 복원됩니다. |
aQoS | TmqttQoS | 전달 보장: mtqsAtMostOnce (0), mtqsAtLeastOnce (1) 또는 mtqsExactlyOnce (2). 기본값은 mtqsAtMostOnce입니다. |
aRetain | Boolean | True인 경우 브로커는 페이로드를 토픽의 retained 값으로 저장합니다. |
aPublishProperties | const TsgcWSMQTTPublish_Properties | 선택적 MQTT 5.0 속성. 일반적으로 바이너리 데이터를 전송할 때 Content Type(예: image/png)을 설정하는 데 사용됩니다. |
PUBLISH 패킷의 패킷 식별자입니다. QoS 0의 경우 0입니다. 확인 이벤트와의 상관 관계를 가능하게 합니다. (Word)
파일, protobuf 프레임, 이미지 및 기타 비텍스트 페이로드를 위한 바이너리 오버로드입니다. 스트림은 직렬화 전에 전체가 읽히므로 매우 큰 페이로드는 큰 할당을 피하기 위해 애플리케이션 계층에서 청크화해야 합니다. QoS, Retain 및 속성의 동작은 텍스트 오버로드와 동일합니다.
oStream := TFileStream.Create('firmware.bin', fmOpenRead or fmShareDenyWrite);
try
MQTT.Publish('devices/123/firmware', oStream, mtqsExactlyOnce);
finally
oStream.Free;
end;