in lib/service_client_mqtt_adapter.ts [85:114]
public async publish(topic: string, payload: mqtt.Payload, qos: mqtt.QoS) : Promise<mqtt.MqttRequest> {
return new Promise<mqtt.MqttRequest>(async (resolve, reject) => {
try {
let result: mqtt5.PublishCompletionResult = await this.client.publish({
topicName: topic,
payload: payload,
qos: (qos as number) as mqtt5.QoS
});
if (result === undefined) {
if (qos == mqtt.QoS.AtMostOnce) {
resolve({});
} else {
reject("Publish failed due to internal error");
}
return;
}
let puback: mqtt5.PubackPacket = result;
if (mqtt5.isSuccessfulPubackReasonCode(puback.reasonCode)) {
resolve({});
} else {
reject(new CrtError("Publish failed with reason code: " + puback.reasonCode));
}
} catch (e) {
reject(e);
}
});
}